c语言的简单问题
五个水手在海岛上发现一堆椰子,先由第一个水手把椰子分成等量得五分,还剩一个给了猴子,自己藏起一堆。然后第二个水手把第二个水手把剩下的椰子混合在一起再分成等量的五堆,还剩下一个给了猴子,自己藏起一堆。以后第三四个水手依次按此方法处理。最后第五个水手,把剩下的椰子分成等量的五分,剩下了一个猴子。请用迭代编程计算
#include <stdio.h>int coconut(int n);void main(){ printf("y=%d ",coconut(5));}int coconut(int n)
{ int i; float x=1,y; y=5*x+1; do{ y=y*n/(n-1)+1; i++; if(int(y)!=y) { x=x+1; y=n*x+1; i=1; } }while(i<n); return (int)y;}烦请大佬看看
int total = 233; //暂定看到的总数
int coconut(int n)
{
//n表示第几个人
if (n > 0)
{
total -= 1; //给猴子的1个先排除
int v = total / 5; //除以5得到平均值
int x = total % 5; //取模5得到余数自己收起来
total = total - x; //把自己收起来的部分去掉交给下一个人
n--; //下一个人
return coconut(n); //递归调用分配函数
}
else
{
return total / 5; //5个人结束 得出现在每个人能分到的数
}
}
int main()
{
printf("经过5个人平分后,每个人得到 %d 个
",coconut(5));
return 0;
}
设计相关程序代码!
下一篇:玩游戏平板电脑推荐
上一篇:我是不是买到垃圾显卡了?
热门标签: