细胞

#include<stdio.h>
#include<stdlib.h>
#define SIZE 100
static int data[SIZE];
static void build_data(void)
{
    for(int c=0;c<SIZE;c++)
    {
        int n=rand()%9;
        data[c]=1;
        while(n--)
        {
            data[c]*=2;
        }
    }
}
int data1[9]={1,2,4,8,16,32,64,128,256};

int time=0;
int ge[267];

void jishu()
{
    for(int i=0;i<SIZE;i++)
    {
        ge[data[i]]++;
    }
}
int main()
{
    for(int l=0;l<10;l++)
    {
        time=0;
        build_data();
        jishu();
        while(1)
        {
            int flag=0;
            for(int i=7;i>=0;i--)
            {
                if(ge[data1[i]]>=2)
                {
                    flag=1;
                    ge[data1[i+1]]=ge[data1[i+1]]+ge[data1[i]]/2;
                    ge[data1[i]]=ge[data1[i]]-ge[data1[i]]/2*2;
                    
                }
            }
            if(flag==1)
                time++;
            else 
                break;
        }
        printf("%d\n",time);
    }
    return 0;
}

 

posted on 2017-01-16 15:26  霸王程  阅读(94)  评论(0编辑  收藏  举报