程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> HPUOJ1295 核反應堆

HPUOJ1295 核反應堆

編輯:關於C++

核反應堆

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

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


列出遞推關系式就好了,得注意0us為初始條件。

#include 
#include 

typedef __int64 LL;
LL fa[35] = {1}, fb[35];

int main() {
	freopen("stdin.txt", "r", stdin);
	int i, n;
	for (i = 1; i <= 33; ++i) {
		fa[i] = 3 * fa[i-1] + 2 * fb[i-1];
		fb[i] = fa[i-1] + fb[i-1];
	}
	while (scanf("%d", &n), n != -1) {
		printf("%I64d, %I64d\n", fa[n], fb[n]);
	}
	return 0;
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved