一,初版
package question20173;
import java.util.Scanner;
/*
* 分蛋糕:
* 1.思想:输入蛋糕块数、至少要分得多克数
* 再输入每块对应的克数
* 得有几个人能分到
* 2.注意:不需要得出谁对应分的那几块,只需求出这么多蛋糕至多能分给几个人
*
* 得分:60
*
*
* */
public class Main {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int cookNum=s.nextInt();
int kNum=s.nextInt();
int zongk=0;
for(int i=0;i<cookNum;i++) {
zongk+=s.nextInt();
}
int man=zongk/kNum;
System.out.println(man);
}
}
二,改进
package question20173;
import java.util.Scanner;
/*
* 分蛋糕(改进版):
* 错误点:1.不是每个人刚好分要求的克数,而是至少分,故不能将某块进行切分的情况下,按照从第一块开始的克数累加,大于则将这几块都给,小于则继续累加
* 2.结束,是大于要求克数,或蛋糕分完,故分给最后一个可能没有要求克数但也分到了
*
* 得分:100
*
* */
public class Test {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int cookNum=s.nextInt();
int kNum=s.nextInt();
int man=0,zongk=0;
for(int i=0;i<cookNum;i++) {
zongk+=s.nextInt();
if(zongk>=kNum) {
man++;
zongk=0;
}
}
//最后已经有man个人分到了,还剩zongk的蛋糕
if(zongk>0&&zongk<kNum) {
man++;
}
System.out.println(man);
}
}