c语言中猴子选大王问题的两种解法
(2013-03-29 21:59:02)
标签:
it |
分类: 编程博文 |
一群猴子选大王,所以猴子站成一个圈,猴子开始从一报数,报数报到三的猴子退出圈子,下一只猴子继续从一报数,依次类推,到最后剩下的猴子就是大王!
第一种解法:对取余符号的巧妙运用!
#include
main()
{
int
a[1000],i,j,k=0,n;
printf("请输入所有参加竞选的猴子的总数:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
a[i]=i;
j=n;
for(i=0;j>1;i++)
{
if(a[i%n+1]!=-1)
k++;
if((k==3)&&(a[i%n+1]!=-1))
{
a[i%n+1]=-1;
j--;
k=0;
}
}
for(i=1;i<=n;i++)
if(a[i]!=-1)
printf("第%d只猴子就是猴王!",a[i]);
return 0;
}
第二种解法:do---while语句的运用
#include
#define N 100
main()
{
int
a[N],i,j,k=0,n;
printf("请输入所有参加竞选的猴子的总数:\n");
scanf("%d",&n);
for(i=0;i
a[i]=i+1;
i=0;
j=n;
do
{
if(a[i]>0)
{
k++;
if(k%3==0)
{
a[i]=0;
j--;
第一种解法:对取余符号的巧妙运用!
#include
main()
{
}
第二种解法:do---while语句的运用
#include
#define N 100
main()
{