c语言:这题怎么做?主要说一下分割线怎么弄?
BoxofBricks时间限制:1000ms|内存限制:65535KB描述Bob在垒砖块,但是他垒的有些乱,但是他很懒,所以想花费最少的体力来让他垒好的砖块一样高,所以你...
Box of Bricks
时间限制:1000 ms | 内存限制:65535 KB
描述
Bob在垒砖块,但是他垒的有些乱,但是他很懒,所以想花费最少的体力来让他垒好的砖块一样高,所以你需要做的就是算出最少需要移动的砖块
输入
多组测试数据,以EOF结束,第一行是一个n(1<=n<=50)表示有n摞砖
第二行是n个正整数k(1<=k<=100)表示每摞砖的砖块数量
输出
对于每组输入数据有两行输出,第一行是一个Case #x,表示x组测试数据,第二行是一句话The minimum number of moves is y.表示最小的移动砖块的数量为y,若无解就输出No solution,每两组输出数据用一个分割线隔开
样例输入
6
5 2 4 1 7 5
2
1 2
样例输出
Case #1
The minimum number of moves is 5.
<---华丽的分割线--->
Case #2
No solution 展开
时间限制:1000 ms | 内存限制:65535 KB
描述
Bob在垒砖块,但是他垒的有些乱,但是他很懒,所以想花费最少的体力来让他垒好的砖块一样高,所以你需要做的就是算出最少需要移动的砖块
输入
多组测试数据,以EOF结束,第一行是一个n(1<=n<=50)表示有n摞砖
第二行是n个正整数k(1<=k<=100)表示每摞砖的砖块数量
输出
对于每组输入数据有两行输出,第一行是一个Case #x,表示x组测试数据,第二行是一句话The minimum number of moves is y.表示最小的移动砖块的数量为y,若无解就输出No solution,每两组输出数据用一个分割线隔开
样例输入
6
5 2 4 1 7 5
2
1 2
样例输出
Case #1
The minimum number of moves is 5.
<---华丽的分割线--->
Case #2
No solution 展开
2个回答
展开全部
希望采纳!!!
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,j,sum,count,sum1,ave;
int a[50];
while(scanf("%d",&n)!=EOF)
{
sum=0;count=1;sum1=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
ave=sum/n;
if(sum%n!=0)
{
printf("Case #%d\n",count++);
printf("No solution\n");
}
else
{
for(i=0;i<n;i++)
{
sum1+=abs(a[i]-ave);
}
printf("Case #%d\n",count++);
printf("The minimum number of moves is %d\n",sum1/2);
}
printf("<---华丽的分割线--->\n");
}
return 0;
}
2014-12-06
展开全部
printf("<---华丽的分割线---> \n");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询