一道程序设计题

王朝知道·作者佚名  2009-08-09
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

有一堆桃子和N只猴子,第一只猴子将桃子平均分成了M堆后,还剩了1个,它吃了剩下的一个,并拿走一堆。后面的猴子也和第1只进行了同样的做法,请问N只猴子进行了同样做法后这一堆桃子至少还剩了多少个桃子(假设剩下的每堆中至少有一个桃子)?而最初时的那堆桃子至少有多少个?

输入

输入包含二个数据,数据间用空格隔开。第一个数据为猴子的只数N(1≤N≤10),第二个数据为桃子分成的堆数M(2≤M≤7)。

输出

输出包含两行数据,第一行数据为剩下的桃子数,第二行数据为原来的桃子数。

测试用例 0 测试用例 1

测试输入 1 3 2

1 4 3

期待的输出 1 1

2 15

1 14

2 79

时间限制 1秒 1秒

内存限制 1024KB 1024KB

參考答案:

#include "stdio.h"

main()

{

int m,n,x,i,j,k,count;

printf("请输入猴子个数(1到10个)和所分堆数(2到7堆):\n");

scanf("%d %d",&n,&m);

if((n<1||n>10)||(m<2||m>7))

{

printf("输入数据错误!按任意键退出\n");

getch();

exit(0);

}

for(i=m-1;i<10000;i+=m-1)

{

count=0;

x=i;

for(j=1;j<=n;j++)

{

if(x*m%(m-1)==0)

{

x=x*m/(m-1)+1;

count++;

}

else break;

}

if(count==n)

{

printf("剩余桃子数:%d 个\n",i);

printf("原桃子数:%d 个\n",x);

printf("%d",x);

for(k=1;k<=n;k++)

{

x=(x-1)*(m-1)/m;

printf("==>%d",x);

}

printf("\n");

break;

}

}

printf("按任意键退出\n");

getch();

}

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航