一堆不同高低的積木,計算將每一個 stack 的高度調整到相同高度所需的積木移動數目
[心得]
1.選擇語言為 ANSI C 時,註解不要用雙斜線
2.輸出字串要打對,是moves不是move (好蠢QQ)
#include <stdio.h>
int main()
{
int set[100]; /* number of stack */
int i;
int h[100]; /* height of stack */
int sum[100]; /* total blocks of set */
int average[100];
int move[100]; /* move of each set */
int n=1; /* set number */
while(scanf("%d",&set[n])&&set[n]!=0)
{
sum[n]=0;
move[n]=0;
for(i=0;i<set[n];i++)
{
scanf("%d",&h[i]);
sum[n]=sum[n]+h[i];
}
average[n]=sum[n]/set[n];
for(i=0;i<set[n];i++)
{
if(h[i]>=average[n]) move[n]=move[n]+(h[i]-average[n]);
else move[n]=move[n]+(average[n]-h[i]);
}
n++;
}
for(i=1;i<n;i++)
{
printf("Set #%d\n",i);
printf("The minimum number of moves is %d.\n\n",move[i]/2);
}
return 0;
}
留言列表