CCF考试练习——201703-1

来源:互联网 发布:网络电影丧尸李志开播 编辑:程序博客网 时间:2024/05/16 11:46
  • 2017/8/28
    没有错误,100分。但代码风格很差,可读性很低

原题目:

试题编号:   201703-1试题名称:   分蛋糕时间限制:   1.0s内存限制:   256.0MB问题描述:   问题描述  小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明总是先将自己手中编号最小的蛋糕分给他,当这个朋友所分得蛋糕的重量不到k时,再继续将剩下的蛋糕中编号最小的给他,直到小明的蛋糕分完或者这个朋友分到的蛋糕的总重量大于等于k。  请问当小明的蛋糕分完时,总共有多少个朋友分到了蛋糕。输入格式  输入的第一行包含了两个整数n, k,意义如上所述。  第二行包含n个正整数,依次表示a1, a2, …, an。输出格式  输出一个整数,表示有多少个朋友分到了蛋糕。样例输入6 92 6 5 6 3 5样例输出3样例说明  第一个朋友分到了前3块蛋糕,第二个朋友分到了第45块蛋糕,第三个朋友分到了最后一块蛋糕。评测用例规模与约定  对于所有评测用例,1 ≤ n ≤ 10001 ≤ k ≤ 100001 ≤ ai ≤ 1000

代码:

#include<stdio.h>int main(){    int n,k;    scanf("%d",&n);     //n块蛋糕    scanf("%d",&k);     //每块蛋糕的重量    int i = 0,j = 0;    int num;    int Num[1000];    int people = 0;    int all = 0;    for(;i < n;i++){        scanf("%d",&num);        Num[i] = num;//      printf("Num[%d] = %d\n",i,Num[i]);    }    for(;j < n;j++){        all = all + Num[j];//      printf("all is %d\n",all);        if((j == (n-1)) && all < k){            people = people + 1;        }        if(all >= k){            people = people + 1;            all = 0;        }//      printf("people is %d\n",people);    }    printf("%d",people);    return 0;}
原创粉丝点击