早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C编程猴子分桃问题有1堆桃子共m个,由n只猴子分配这些桃子.每次到达桃子堆放地的猴子只有1只,而且每个猴子都会平均分1次桃子.第1只到达的猴子将桃子平均分成n等份,但发现多k(k

题目详情
C编程猴子分桃问题
有1堆桃子共 m 个,由 n 只猴子分配这些桃子.每次到达桃子堆放地的猴子只有1只,而且每个猴子都会平均分 1 次桃子.
第1只到达的猴子将桃子平均分成 n 等份,但发现多 k ( k < n )个,于是,将多余的k个扔掉,然后拿走其中的1份.
第2只猴子同样将剩余的桃子又分成 n 等份,也发现多 k 个,并同样将多余的 k 个扔掉,然后拿走其中1份.
之后的每只猴子都这样(将剩余的桃子又分成 n 等份,也发现多 k 个,并将多余的 k 个扔掉,然后拿走其中1份).
现在假设最后一只猴子分配后至少可以拿走1个桃子,请根据输入的 n 和 k值,编程计算最小的 m.(比如,n=3,k=1,则最小的m是25,最后一个分得3个)
#include
int main()
{
int n,k,i,t,a;
double m;
scanf("%d %d",&n,&k);
for(t=1;;t++)
{
m=t*n+k;
for(i=n;i>1;i--)
{
m=m*3/2+k;
}
if(m==(int) m)
{
printf("%d\n",&m);
break;
}
}
return 0;
}
哪里错了 求修改
▼优质解答
答案和解析
你的算法有问题,我只能按自己的算法来处理