- 问题描述
某幼儿园按如下方法依次给A、B、C、D、E 五个小孩发苹果。将全部苹果的一半再加二分之一个苹果发给第1个小孩,
将剩下苹果的三分之一再加三分之一个苹果发给第2个小孩;将剩下苹果的四分之一再加四分之一个苹果发给第3个小孩;
将剩下苹果的五分之一再加五分之一个苹果发给第4个小孩;将剩下的11个苹果发给第5个小孩;
#include<stdio.h>
int main (void)
{
int n,k,x,flag,a,b,c,d,e;// n为试探数,第k个小孩,x苹果总数,flag试探标志位(解标志flag==0)
n = 11;
flag = 1;
while(flag)
{
x = n;
flag = 0;
for(k=1;k<=4 && flag==0; k++)
if((n+1)%(k+1)==0)
n = n-(n+1)/(k+1);
else
flag = 1;
if(flag==0 && n!=11)
flag = 1;
n = x+1;
}
printf("原来共有%d个苹果\n",x);
a = (x+1)/2;
b = (x-a+1)/3;
c = (x-a-b+1)/4;
d = (x-a-b-c+1)/5;
e = 11;
printf("每个小孩分别得到%d、%d、%d、%d、%d个苹果",a,b,c,d,e);
}
(争取每天更新一道实例题呀~~~)