1. 程式人生 > >PAT-乙-1071 1071 小賭怡情 (15 分)

PAT-乙-1071 1071 小賭怡情 (15 分)

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

程式碼

#include <iostream>

using namespace std;

int main() {

	int T, K;
	cin>>T>>K;

	for(int i=0; i<K; i++) {
		int n1, b, t, n2;
		cin>>n1>>b>>t>>n2;
		if(T<t) {
			cout<<"Not enough tokens.  Total = "<<T<<"."<<endl;
		} else {
			if( (b==0 && n1>n2) || (b==1 && n1<n2)) {
				T += t;
				cout<<"Win "<<t<<"!  Total = "<<T<<"."<<endl;
			} else {
				T -= t;
				cout<<"Lose "<<t<<".  Total = "<<T<<"."<<endl;
			}
			if(T==0){
				cout<<"Game Over."<<endl;
				break;
			}
		}
	}

	return 0;
}

註解

準確分析籌碼不足,Game over,以及輸贏的邏輯順序是關鍵。
在下注後,首先判斷籌碼是否足?不足就輸出籌碼不足,但題意沒有要求退出,因此可繼續下一輪迴圈。否則,就判斷下注是否正確,如正確增加籌碼,不正確減少籌碼。此時該輪結束,判斷是否還剩籌碼,如有,可繼續下一輪,否則遊戲結束。

結果

PAT-乙-1063 1063 計算譜半徑 (20 分)