百度笔试java-第一题

import java.util.Scanner;

/**
 *只有5和0的卡片能整除90的最大数
 **/
public class Main1 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n = scanner.nextInt();
        int[] arr=new int[n];
        int ret=0;
        int ret1=0;
        int sum=0;
        for (int i = 0; i < arr.length; i++) {
            arr[i]= scanner.nextInt();
            if (arr[i] == 0) {
                ret++;
            }else {
                ret1++;
                sum=sum+arr[i];
            }
        }
        if (sum % 9 == 0&&ret!=0) {
            StringBuilder sb=new StringBuilder();
            for (int i = 0; i < ret1; i++) {
                sb.append(5);
            }
            for (int i = 0; i < ret; i++) {
                sb.append(0);
            }
            System.out.println(sb.toString());
        }else {
            int cnt=1;
            for (int i = 1; i < ret1; i++) {
                sum=sum-5;
                if (sum % 9 == 0) {
                    break;
                }
                cnt++;
            }
            StringBuilder sb=new StringBuilder();
            for (int i = 0; i < ret1 - cnt; i++) {
                sb.append(5);
            }
            for (int i = 0; i < ret; i++) {
                sb.append(0);
            }
            if (ret == 0||cnt==ret1) {
                System.out.println(-1);
            }else {
                System.out.println(sb.toString());
            }
        }
    }
}

#笔试题型##百度#
全部评论
百度java第二题 https://www.nowcoder.com/discuss/498112
1 回复 分享
发布于 2020-09-03 21:27
这道用性质做比较简单,能被九十整除有两个性质,1. 各个位数的和为9的倍数,2. 最后一位为0,加上这道题只有0和5,所以只要选取5的个数为9的倍数,并且以0结尾就可以被整除,从中选出最大值即可
点赞 回复 分享
发布于 2020-09-04 15:02

相关推荐

明天不下雨了:兄弟你是我今天看到的最好看的简历(我说的是简历风格跟简历书写)把985 211再搞亮一点。投boss就说;您好,我华科(985)研二在读,本科211。对您的岗位很感兴趣,希望能获得一次投递机会。
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客企业服务