c语言编程:分糖果

Python017

c语言编程:分糖果,第1张

都已经回复过了,怎么还在重复发贴啊~~

#include<stdio.h>

int equal(int child[])//判断每个小孩手上的糖是否相等

{

int i

for(i=1i<10i++)

if(child[i]!=child[i-1])

return 1

return 0

}

void main()

{

int child[10]={10,2,8,22,16,4,10,6,14,20}

int i, tmp0, tmp, sum=0, count=1

while(equal(child)) {

tmp0= child[0]

for(i=1i<10i++) {//循环分糖

if(child[i]%2)

child[i]++

tmp = child[i]

child[i-1]=child[i-1]/2+tmp/2//分糖后

}

if(tmp0%2)

tmp0++

child[9]=child[9]/2+tmp0/2

count++

}

printf("经过%d次后,大家手上都有%d块糖.\n", count, child[0])

}

#include<stdio.h>

#define N 20

int n

int equal(int [])

void main()

{

    int num=0,count=0,i,t1,t2

    int child[N]

    printf("请输入小孩数:")

    scanf("%d",&n)

    printf("请输入每个小孩手中的原始糖数:")

    for(i=0i<ni++)

        scanf("%d",&child[i])

    while(!equal(child))

    {

        for(i=0i<ni++)

        {

            if(child[i]%2!=0)

            {

                child[i]+=1

                num+=1

            }

        }

        t1=child[0]

        for(i=0i<ni++)

        {

            t2=child[(i+1)%n]

            child[(i+1)%n]/=2

            child[(i+1)%n]+=t1/2

            t1=t2

        }

        count+=1

        for(i=0i<ni++)

            printf("%d ",child[i])

        printf("\n")

    }

    printf("经过%d次交换后糖数相\n调整过程中新发%d颗糖\n糖数是%d颗\n",count,num,child[1])

}

int equal(int child[])

{

    int i

    for(i=1i<ni++)

        if(child[i]!=child[i-1])

            return 0

    return 1

}

不少问题,改了一下,楼主看看。加了一个每次分完后的结果输出。

根据第二个图片分析可得代码:

#include<stdio.h>

int getCandy()

{

    int i

    for (i = 10 i+=10){

        if ((9*(i+1)+171)%100 == 0 && (i+1+9)/10 == (9*(i+1)+171)/100){

            return i+1

        }

    }

    return -1

}

int main()

{

    int m = getCandy()

    int n = m / ((9+m)/10)

    printf ("共分成%d份, 共%d学生\n", m, n)

    return 0

}