zoukankan      html  css  js  c++  java
  • hdu1034 简单模拟

    这里开一个二维数组。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;
    }
    


  • 相关阅读:
    好了伤疤,忘了疼,我又崴脚了
    征途 --从 5公里 前端 开始
    MVC 感触
    2公里
    又受伤了打篮球
    Unity Lighting,lighting map,probes
    UnityPostProcessing笔记
    unity HDRP和URP
    blender2.8 import fbx armature setting
    U3D资源加载框架迭代笔记
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6844903.html
Copyright © 2011-2022 走看看