CCF 历年真题之分蛋糕(_1703_1_Cake.java)参考答案

来源:互联网 发布:淘宝直播在哪里开通 编辑:程序博客网 时间:2024/06/06 14:06

CCF 历年真题之分蛋糕(_1703_1_Cake.java)参考答案


問題描述:
试题编号:201703-1试题名称:分蛋糕时间限制:1.0s内存限制:256.0MB问题描述:

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



參考代碼1:

这是输完蛋糕的重量之后在分配给朋友(用数组存储蛋糕的重量)

import java.util.Scanner;/** *  * @Author: Dina * @Time: 2017年9月2日  * @Description: 分蛋糕 * @Score:100 */public class _1703_1_Cake {public static void main(String[] args) {Scanner input = new Scanner(System.in);int sum=0;int frind_count=0;int n = input.nextInt();int k = input.nextInt();int cake_array[]=new int[1000];//用來記錄每個蛋糕的數量for(int i=0;i<n;i++){cake_array[i]=input.nextInt();}for(int i=0;i<n;i++){sum=sum+cake_array[i];if(sum>=k){frind_count++;sum=0;}}if (sum > 0) {frind_count++;}System.out.println(frind_count);input.close();}}

參考代碼 2 :

这是边输入蛋糕的重量边分配给朋友

import java.util.Scanner;/** *  * @Author: Dina * @Time: 2017年9月2日  * @Description:分蛋糕 * @Score: 100 */public class _1703_1_Cake {public static void main(String[] args) {int sum = 0;int frind_count = 0;Scanner input = new Scanner(System.in);int n = input.nextInt();int k = input.nextInt();for (int i = 0; i < n; i++) {int cake_weight = input.nextInt();sum = sum + cake_weight;if (sum >= k) {frind_count++;sum = 0;}}if (sum > 0) {frind_count++;}System.out.println(frind_count);input.close();}}

提交代码可通过:



阅读全文
0 0
原创粉丝点击