加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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--;     
            }
        }
        i++;    
        if(i>=n)   
            i=0;
    }while(j>1);     
    for(i=0;i
        if(a[i]!=0)
    printf("第%d只猴子就是猴王!",a[i]);
return 0;
}

0

阅读 收藏 喜欢 打印举报/Report
后一篇:微信的危机
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有