永发信息网

我编的仅过两组数据,砸错了?更好的方法是啥?

答案:3  悬赏:40  手机版
解决时间 2021-04-27 11:00

有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌,然后移动。
  移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。
  现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。

  例如 N=4,4 堆纸牌数分别为:
  ① 9 ② 8 ③ 17 ④ 6
  移动3次可达到目的:
  从 ③ 取 4 张牌放到 ④ (9 8 13 10) -> 从 ③ 取 3 张牌放到 ②(9 11 10 10)-> 从 ② 取 1 张牌放到①(10 10 10 10)。
输入格式
N(N 堆纸牌,1 <= N <= 100)
A1 A2 … An (N 堆纸牌,每堆纸牌初始数,l<= Ai <=10000)
输出格式
所有堆均达到相等时的最少移动次数。
样例输入
4
9 8 17 6
样例输出
3

program exa;
var n,i,s:integer;
ave,tot:real;
a:array[1..100] of real;
begin
tot:=0;s:=0;
read(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do tot:=tot+a[i];
ave:=tot/n;
for i:=1 to n-1 do
begin
if a[i]<>0 then a[i+1]:=a[i+1]+a[i]-ave;s:=s+1;
end;
write(s);
end.

最佳答案
干吗要用real型?不是存在误差的么?integer可以了,那纸牌是保证能被均分的。直接ave:=tot div n;就行了
全部回答

public class ArrayAVG { public static void main(String args[]){ int iA[]={5,4,3}; int iAvg = sum(iA)/iA.length; int count =0; int iTemp =0; int k=0; for(int i=0,j=iA.length;i<j;i++){ iTemp+=iA[i]; k++; if(iTemp>=iAvg*(i+1)){ count=count+k-1; if(i<j-1){ if(iTemp>iAvg*(i+1)){ iA[i+1]+=(iTemp-iAvg*(i+1)); count++; } } k=0; } } System.out.println(count); } public static int sum(int[] b){ int sum=0; for(int i=0;i<b.length;i++){ sum+=b[i]; } return sum; } }

这是java版的,你看着改一改吧。只提供思路。不理解Q我:30264092

只要看N堆中有几堆是平均数就行了

假定N堆中有n堆是平均数,那么最小次数就是N-n-1

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
丝路英雄中城防是干什么用的,为什么别人打我
执业医师考试看考研书籍可以么
谁邀请我开QQ餐厅 ??谢谢
吉祥三巷(东段)我想知道这个在什么地方
15岁女生正常身高
对于人来讲,什么叫幸运者对不幸者的愧怍?
求几部玄异或推理或灵异的小说?
斗鱼怎么分公母,月光鱼能长多大 怎么区分公母
什么是代沟?相隔几年会有?
谁有QQ三国70JS新装备图片地址啊
{丑女无敌}
为什么她嘴里只说爱我一个人,现在又成了别人
中学生早餐怎么做?
有月经时同房会导致怀孕吗?
鸿源商务酒店地址在哪,我要去那里办事
推荐资讯
为什么不在线好友没显示
2010年天水市高一新生课本有没有变化,变难了
为什么前男友会把我当做是他的亲人
专升本 自考 心理学
DNF什么时候恢复罐子啊,都多久了,有没有点
《是美男啊》里面女生唱的歌的名字是什麼?
谁知道sara的《我的心好冷》的歌曲连接要不卡
请问如何隐藏游戏图标
一个电脑桌面问题急需解决???
爱民以诚信,侍君以性情。什么意思?
旬阳县小河镇昨天老百姓生活超市表演写一篇一
不诚信的句子,形容一个人不守信用的句子
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?