核反应堆

某核反应堆有两类事件发生:高能质点碰击核子时,质点被吸收,放出3个高能质点和1个低能质点;低能质点碰击核子时,质点被吸收,放出2个高能质点和1个低能质点。假定开始的时候(0微秒)只有一个高能质点射入核反应堆,每一微秒引起一个事件发生(对于一个事件,当前存在的所有质点都会撞击核子),试确定n微秒时高能质点和低能质点的数目。

输入

输入含有一些整数n(0≤n≤33),以微秒为单位,若n为-1表示处理结束。

输出

分别输出n微秒时刻高能质点和低能质点的数量,高能质点与低能质点数量之间以逗号空格分隔。每个输出占一行。

样例输入

5 2
-1

样例输出

571, 209
11, 4
#include <stdio.h>  
int main()  
{  
    int a[44],b[44];  
    int n,i;  
    while(scanf("%d",&n)!=EOF &&n!=-1)  
    {   
        a[0]=3;a[1]=11;  
        b[0]=1;b[1]=4;  
        for(i=2;i<n;i++)  
        {  
            a[i]=a[i-1]+a[i-1]*2+b[i-1]*2;  
            b[i]=a[i-1]+b[i-1];    
        }  
        if(n!=0)    
        {  
            printf("%d, %d
",a[n-1],b[n-1]);  
        }  
        else    
            printf("1, 0
");  
    } 
    return 0;
} 
原文地址:https://www.cnblogs.com/Lazy-Cat/p/9838114.html