正文

编程比赛——狼能否找到兔子?(转)2009-07-31 22:15:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/shao/45929.html

分享到:

/**********************************************************************************************************************************一座山上周围有n个洞,顺时针编号为0,1,2,……,n-1。而一只狼从0号洞开始,顺时针方向计数,每遇到m个洞就进洞找兔子,例如n=5 m=3 狼经过的洞依次为0,3,1,4,2,0输入n、m。试问兔子有没有幸免的机会? 编写一个完整的程序  n m 由scanf输入 有幸免的机会输出Y没有输出N ***********************************************************************************************************************************/#include<iostream>using namespace std;/*因为题目没给出n的范围,所以我只设了长度为1001只能测n<=1000的情况 具体情况请题主自由设定tag长度*/int deal(int m,int n,int tag[]){    int drift(m);    int count(1);    while(drift!=0)    {        if(drift>=n)            drift=drift%n;        if(0==tag[drift])        {            count++;            tag[drift]=1;        }        drift+=m;        if(drift>=n)            drift=drift%n;    }    if(count==n)        return 0;    else return 1;} void main(){    int m,n;    cout<<"请输入m"<<endl;    cin>>m;    cout<<"请输入n"<<endl;    cin>>n;    int tag[1001];    memset(tag,0,sizeof(tag));    if(deal(m,n,tag))        cout<<"Y"<<endl;    else cout<<"N"<<endl;}   /*上面这个算法是朋友的    觉得挺有趣   借了过来*/

阅读(2209) | 评论(7)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册