A,B从一堆玻璃球(共100个)里向外拿球

A,B从一堆玻璃球(共100个)里向外拿球,规则如下:
(1)A先拿,然后一人一次交替着拿;
(2)每次只能拿1个或2个或4个;
(3)谁拿最后一个球,谁就是最后的失败者;
问A,B谁将是失败者?写出你的判断步骤。
 1#include <iostream>
 2using namespace std;
 3#include <cstdlib>
 4#include <ctime>
 5
 6int main()
 7{
 8    srand((unsigned)time(NULL));
 9    int c[]={1,2,4};
10    int aget,bget;
11    bool aflag,bflag;
12    int sum=100;
13    while(1){
14        aflag=true;
15        while(aflag){
16            aget=c[rand()%3];
17            if(aget<=sum){
18                sum-=aget;
19                aflag=false;
20                cout<<"A取走"<<aget<<"个球\t还剩下"<<sum<<"个球"<<endl;
21            }
            
22        }

23        if(sum==0){
24            cout<<"A是失败者"<<endl;
25            break;
26        }

27        bflag=true;
28        while(bflag){
29            bget=c[rand()%3];
30            if(bget<=sum){
31                sum-=bget;
32                bflag=false;
33                cout<<"B取走"<<bget<<"个球\t还剩下"<<sum<<"个球"<<endl;
34            }
            
35        }

36        if(sum==0){
37            cout<<"B是失败者"<<endl;
38            break;
39        }

40    }

41    system("pause");
42    return 0;
43}

44
45


posted on 2011-06-03 10:07 Hsssssss 阅读(863) 评论(0)  编辑 收藏 引用 所属分类: C++代码


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿

文章分类

文章档案

收藏夹

搜索

最新评论