#include <iostream> #include <string> using namespace std; int main() { int N; int red, white, yellow, black, poison, current; cin >> N; string str; for (int i = 0; i<N; i++) { cin >> red >> white >> yellow >> black >> poison >> current; getline(cin , str); getline(cin, str); int carrots[10000] = {}; int tmp = 0; int count = 0; bool dead = false; for (int j = 0; j<str.length(); j++) { if (str[j] != ' ') { carrots[tmp] = str[j] - '0'; tmp += 1; } } for (int i = 0; i<tmp; i++) { current -= count * poison; if (current <= 0) { cout << "bye~Rabbit" << endl; dead = true; break; } if (carrots[i] == 1) { current += red; } else if (carrots[i] == 2) { current += white; } else if (carrots[i] == 3) { current -= yellow; } else if (carrots[i] == 4) { current -= black; count += 1; } if (current <= 0) { cout << "bye~Rabbit" << endl; dead = true; break; } } if (!dead) { cout << current << "g" << endl; } } } |
這是一個經典的程式設計題目,通常出現在程式競賽或線上評測平台上,例如 ZeroJudge。這個題目主要測試了基本的輸入輸出處理、字串處理以及條件判斷等技能。以下是這個題目以及程式的介紹和 Python 版本的實現。
題目介紹這個題目要求模擬一隻兔子每天吃不同種類的蘿蔔,並計算其體重的變化。如果兔子的體重在某一天變成0或更少,則輸出 "bye~Rabbit",否則輸出最終的體重。
C++ 程式碼解析這段 C++ 程式碼讀取多組測試資料,每組測試資料包括幾個參數和一串表示每天吃的蘿蔔種類的數字。程式計算兔子的體重變化,並根據條件輸出結果。
|