码迷,mamicode.com
首页 > 其他好文 > 详细

hdu1034 简单模拟

时间:2017-05-12 13:12:59      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:cout   main   break   return   amp   pac   content   cpp   name   

这里开一个二维数组。num[105][2];   我也不知道N有多少,随便开的,  那么这里num[i][0] 表示当前 第 i 个人拥有的糖果数,num[i][1]表示他上面一个人分给他的糖果数。详细实现见代码凝视

这里要注意的就是:先给糖果,然后假设有人糖果数为奇数。就加1 ,然后再推断是不是相等

上马:

#include <iostream>
#include <cstring>

using namespace std;

int num[105][2];
int N;

bool end()//推断是否end过程中。处理分糖果
{
    bool flag = true;//是否end
    for(int i = 0; i < N; i ++)
    {
        num[i][0] = num[i][0] + num[i][1]; //先处理
        if(num[i][0] % 2 != 0) num[i][0] ++;//奇数就加1
    }
    for(int i = 0; i < N-1; i ++)
    {
        if(num[i][0] != num[i+1][0]) flag = false;//两两中相等就都相等
    }
    return flag;
}
int main()
{
    while(cin >> N && N)
    {
        memset(num,0,sizeof(num));
        for(int i = 0; i < N; i ++) cin >> num[i][0];

        int time = 0;//次数
        while(1)
        {
            if(end()) break;
            time ++;
            for(int i = 0; i < N; i ++)//循环处理
            {
                int right = (i+1)%N; //这里表示下一个人
                num[right][1] = num[i][0] / 2;
                num[i][0] = num[i][0]/2;
            }
        }
        cout << time << ‘ ‘ << num[0][0]<<endl;
    }
    return 0;
}


hdu1034 简单模拟

标签:cout   main   break   return   amp   pac   content   cpp   name   

原文地址:http://www.cnblogs.com/yfceshi/p/6844903.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!