#40837: 解答 c++


hs210023@students.hshs.chc.edu ... (天底下最帥的那個男人)

學校 : 不指定學校
編號 : 274462
來源 : [39.9.190.55]
最後登入時間 :
2024-06-17 21:52:54
a271. 彩色蘿蔔 -- 兔子 | From: [27.247.62.93] | 發表日期 : 2024-06-14 19:18

#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++ 程式碼讀取多組測試資料,每組測試資料包括幾個參數和一串表示每天吃的蘿蔔種類的數字。程式計算兔子的體重變化,並根據條件輸出結果。
 
ZeroJudge Forum