一道分糖果的题,求大神帮忙看看程序哪里出问题了,或者说给我个思路

各种迷糊 2014-04-14 08:50:25
package example;
import java.util.*;
public class 分糖果 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

Scanner in=new Scanner(System.in);
int sum=0; //总计数老师补发了多少糖果
int n=in.nextInt();
int a[]=new int[100];
for(int j=0;j<n;j++){
a[j]=in.nextInt();
}
while(true)
{
int i;
for(i=0;i<a.length;i++)
{
int t=a[i]/2;
a[i]-=t;
a[i+1]+=t;
}
if(a[i]/2!=0)
{
a[i]++;//老师补齐奇数糖果的孩子
sum++;
}
if(a[i+1]/2!=0)
{
a[i+1]++;
sum++;
}
if(a[i]==a[i+1]){
break;
}
continue;
}
System.out.println(+sum);
}
}
...全文
128 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
-江沐风- 2014-04-16
  • 打赏
  • 举报
回复
引用 14 楼 lwb314 的回复:
引用 13 楼 u012724379 的回复:
[quote=引用 12 楼 lwb314 的回复:] [quote=引用 9 楼 u012724379 的回复:] 怎么回事
感觉圆满了,可以深藏功与名了
那等我也赚个星了,我也深藏功与名去吧[/quote]水区欢迎你[/quote]
  • 打赏
  • 举报
回复
引用 13 楼 u012724379 的回复:
引用 12 楼 lwb314 的回复:
[quote=引用 9 楼 u012724379 的回复:] 怎么回事
感觉圆满了,可以深藏功与名了
那等我也赚个星了,我也深藏功与名去吧[/quote]水区欢迎你
-江沐风- 2014-04-16
  • 打赏
  • 举报
回复
引用 12 楼 lwb314 的回复:
引用 9 楼 u012724379 的回复:
怎么回事
感觉圆满了,可以深藏功与名了
那等我也赚个星了,我也深藏功与名去吧
  • 打赏
  • 举报
回复
引用 9 楼 u012724379 的回复:
怎么回事
感觉圆满了,可以深藏功与名了
各种迷糊 2014-04-15
  • 打赏
  • 举报
回复
引用 6 楼 sducaicai 的回复:
1、判断是不是偶数 应该模除 % 2、是不是偶数的判断对象是全体 ,而不是最后两个 3、人数应该是n,而不是固定的100 4、跳出循环时的条件,是所有人的糖果数目相同,而不是最后两个 5、所有的人,形成一个环,第一个的一半应该给最后一个人 代码: package com.nzz.Temp; import java.util.*; public class 分糖果 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int sum = 0; // 总计数老师补发了多少糖果 int temp = 0; int n = in.nextInt(); int a[] = new int[n]; for (int j = 0; j < n; j++) { a[j] = in.nextInt(); } while (true) { // 拥有奇数颗糖的孩子由老师补给1个糖果 从而变成偶数 for (int i = 0; i < a.length; i++) { if (a[i] % 2 != 0) { a[i]++;// 老师补齐奇数糖果的孩子 sum++; } } // 每个小朋友都把自己的糖果分一半给左手边的孩子 for (int i = 0; i < a.length; i++) { a[i] = a[i] / 2; } temp = a[0]; for (int i = 0; i < a.length - 1; i++) { a[i] = a[i] + a[i + 1]; } a[a.length - 1] = a[a.length - 1] + temp; //所有小朋友的糖果数都相同 int x = 0; for (int i = 0; i < a.length - 1; i++) { if (a[i] == a[i + 1]) ++x; } if (x == a.length - 1) { System.out.print(sum); break; } } } }
拜谢,太感激了,一目了然
sducaicai 2014-04-15
  • 打赏
  • 举报
回复
毕业后就没碰过JAVA了 都忘没了 爱 求大神们 多多指教阿
-江沐风- 2014-04-15
  • 打赏
  • 举报
回复
引用 8 楼 lwb314 的回复:
引用 7 楼 u012724379 的回复:
[quote=引用 3 楼 lwb314 的回复:] [quote=引用 1 楼 u012724379 的回复:] 目的是什么;
哈喽
Java版欢迎你哦; 都一个星了,这么厉害;[/quote]升到1星以后就不怎么爱来了[/quote] 怎么回事
  • 打赏
  • 举报
回复
引用 7 楼 u012724379 的回复:
引用 3 楼 lwb314 的回复:
[quote=引用 1 楼 u012724379 的回复:] 目的是什么;
哈喽
Java版欢迎你哦; 都一个星了,这么厉害;[/quote]升到1星以后就不怎么爱来了
-江沐风- 2014-04-15
  • 打赏
  • 举报
回复
引用 3 楼 lwb314 的回复:
引用 1 楼 u012724379 的回复:
目的是什么;
哈喽
Java版欢迎你哦; 都一个星了,这么厉害;
sducaicai 2014-04-15
  • 打赏
  • 举报
回复
1、判断是不是偶数 应该模除 % 2、是不是偶数的判断对象是全体 ,而不是最后两个 3、人数应该是n,而不是固定的100 4、跳出循环时的条件,是所有人的糖果数目相同,而不是最后两个 5、所有的人,形成一个环,第一个的一半应该给最后一个人 代码: package com.nzz.Temp; import java.util.*; public class 分糖果 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int sum = 0; // 总计数老师补发了多少糖果 int temp = 0; int n = in.nextInt(); int a[] = new int[n]; for (int j = 0; j < n; j++) { a[j] = in.nextInt(); } while (true) { // 拥有奇数颗糖的孩子由老师补给1个糖果 从而变成偶数 for (int i = 0; i < a.length; i++) { if (a[i] % 2 != 0) { a[i]++;// 老师补齐奇数糖果的孩子 sum++; } } // 每个小朋友都把自己的糖果分一半给左手边的孩子 for (int i = 0; i < a.length; i++) { a[i] = a[i] / 2; } temp = a[0]; for (int i = 0; i < a.length - 1; i++) { a[i] = a[i] + a[i + 1]; } a[a.length - 1] = a[a.length - 1] + temp; //所有小朋友的糖果数都相同 int x = 0; for (int i = 0; i < a.length - 1; i++) { if (a[i] == a[i + 1]) ++x; } if (x == a.length - 1) { System.out.print(sum); break; } } } }
momoyssy 2014-04-15
  • 打赏
  • 举报
回复
楼主能把详细需求说一下么,光看程序不知道你的加、减、循环用意何在,不知道怎么改啊。
  • 打赏
  • 举报
回复
引用 2 楼 u012379764 的回复:
引用 1 楼 u012724379 的回复:
目的是什么;
最后输出老师一共补发了多少个糖果
你先把完整的题目发一下
  • 打赏
  • 举报
回复
引用 1 楼 u012724379 的回复:
目的是什么;
哈喽
各种迷糊 2014-04-15
  • 打赏
  • 举报
回复
引用 1 楼 u012724379 的回复:
目的是什么;
最后输出老师一共补发了多少个糖果
-江沐风- 2014-04-14
  • 打赏
  • 举报
回复
目的是什么;

50,540

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧