一堆不同高低的積木,計算將每一個 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;
}

arrow
arrow
    全站熱搜

    RingsACM 發表在 痞客邦 留言(0) 人氣()