牛客2234812号 level
获赞
73
粉丝
0
关注
0
看过 TA
2
某电
2018
Java
IP属地:河北
offer
私信
关注
2017-10-26 20:09
某电 Java
0 点赞 评论 收藏
分享
2017-10-14 12:55
某电 Java
如题
投递融360等公司7个岗位 >
0 点赞 评论 收藏
分享
2017-09-28 22:18
某电 Java
如题
投递顺丰集团等公司7个岗位 >
0 点赞 评论 收藏
分享
2017-09-17 16:27
某电 Java
0 点赞 评论 收藏
分享
2017-09-10 17:50
某电 Java
0 点赞 评论 收藏
分享
2017-09-05 16:12
某电 Java
0 点赞 评论 收藏
分享
2017-09-02 21:31
某电 Java
如题
故花香:import java.util.Scanner; /*  * 题目:给定一个整数n和一个整数m,将n按照位分割成多个数字,使得这多个数字的和最接近m,  *     例如n=654321,m=50,则最大值为48(6+5+4+32+1)  * */ public class Main {     // 求最大值     public static Integer plimit(Integer n, Integer m) {         if (n < m)             return n;         Integer add = 0; //把所有的位加起来的和         Integer maxNum = 0;   //最终所求结果         Integer count = 0;    //辅助计数器,计算每个子数组中按位加起来的的和         Integer madd = 0;    //辅助计数,把每个子数组中的数字表示成十进制         Integer mc = 0;      //辅助计数,把每个子数组中的数字表示成十进和其他位按位加起来的总和         int a = 0, b = 0;    //标记子数组第一位和最后一位的指针         String nstr = n.toString();    //将n转化成字符串         String mstr = m.toString();   //将m转化字符串         int nlength = nstr.length(); // n的长度         int mlength = mstr.length(); // m的长度         int[] narr = new int[nlength]; // 新建一个数组用来保存num每一位的数字         for (int i = 0; i < nlength; i++) {             Character ch = nstr.charAt(i); // 遍历nstr将每一位数字添加到narr             narr[i] = Integer.parseInt(ch.toString());         }         for (int i = 0; i < nlength; i++) {             add += narr[i];         }         if (add < m){             for (int i = 2; i <= mlength; i++) {                 a = 0;                 b = i - 1;                 while (b < nlength) {                     for (int j = a; j <=b; j++) {                         //System.out.println("j="+j);                         count += narr[j];                         madd = madd + (int) (narr[j] * Math.pow(10, (b - j)));                         a++;                     }                     mc = (add - count) + madd;                     //System.out.println("mc="+mc);                     if (mc > maxNum && mc < m) {                         maxNum = mc;                     }                     b++;                     a = b - i + 1;                     madd=0;                     count=0;                     //System.out.println("a=  b="+a+" "+b);                 }             }         }         return maxNum;     }     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         Integer n = in.nextInt();         Integer m = in.nextInt();         System.out.println(plimit(n, m));     } } /* 例一:      输入:   654321   50      输出:   48   例一:      输入:   654321   661      输出:   600  */
0 点赞 评论 收藏
分享
2017-09-05 14:37
已编辑
某电 Java
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务