HDU 2085 核反應堆

核反應堆

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 9712    Accepted Submission(s): 4456


Problem Description
某核反應堆有兩類事件發生:
高能質點碰擊核子時,質點被吸收,放出3個高能質點和1個低能質點;
低能質點碰擊核子時,質點被吸收,放出2個高能質點和1個低能質點。
假定開始的時候(0微秒)只有一個高能質點射入核反應堆,每一微秒引起一個事件發生(對於一個事件,當前存在的所有質點都會撞擊核子),試確定n微秒時高能質點和低能質點的數目。
 

Input
輸入含有一些整數n(0≤n≤33),以微秒爲單位,若n爲-1表示處理結束。
 

Output
分別輸出n微秒時刻高能質點和低能質點的數量,高能質點與低能質點數量之間以逗號空格分隔。每個輸出佔一行。
 

Sample Input
5 2 -1
 

Sample Output
571, 209 11, 4 提示 可以使用long long int對付GNU C++,使用__int64對付VC6
 

Source
 

Recommend
lcy   |   We have carefully selected several similar problems for you:  1133 1143 1996 1396 1290 
 

Statistic | Submit | Discuss | Note

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
    int n;
    __int64 h[35],l[35];
    while(scanf("%d",&n)&&n!=-1)
    {
        h[0]=1,l[0]=0;
        for(int i=1;i<=n;i++)
        {
            h[i] = 3*h[i-1]+2*l[i-1];
            l[i] = h[i-1]+l[i-1];
        }
        printf("%I64d, %I64d\n",h[n],l[n]);
    }
    return 0;
}


發佈了138 篇原創文章 · 獲贊 3 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章