#包含?& ltstdio.h & gt
# include & ltstdlib.h & gt
# include & ltmath.h & gt
主()
{
int?n?;?//水手人數
printf("輸入?n(1 & lt;n & lt= 5):\ n”);
scanf("%d ",& ampn);
//增加程序的健壯性
如果(n & gt1。& ampn & lt=5)
printf("y=%d\n ",Coconu?(n));
其他
printf("錯誤!\ n ");
系統(“暫停”);
}
int?可可努?(int?n)
{
int?我?;?//內部循環變量
int?j = 1;?//外部循環變量,
int?s;?//椰子的原始數量
int?r;?//叠代變量
做什麽?//第壹個周期:在最後壹個水手的平均份額之後,增加每份的椰子數,從1開始(最小值為1)。
{
r=j*n+1?;?//最後壹個水手的椰子總數
//?第二個循環:通過叠代和反向遞歸得到原始椰子數。
for(I = n-1;我& gt0;我-)
{
//?在叠代過程中,如果反向遞歸不可分,就會跳出循環。(因為椰子必須是完整的)
if(r%(n-1)!=0)
打破;
//?重復
s =(r/(n-1))* n+1;
r = s;
}
j++;
}而(我!=0);?//i=0表示循環完成,完整的循環S就是最終的原椰子數。
回歸?s;
}