大數練習題 1

0.5s 256M

在程式設計競賽中,凡是無法以一般整數資料型態(如 long long)儲存的整數,皆稱為「大數」。本題要你練習輸出一個大數。

給定一個整數 \(x\)(\(1 \le x \le 9\)),請輸出 \(x \times 10^{50} + x\) 的值。注意這個值共有 \(51\) 位數,無法用 long long 儲存。

語法限制

簡單來說,本題只能靠「宣告整數變數、指派運算、cin、cout、加減乘除與餘數」完成。如果想看完整細節,再展開下面的清單。

本題是練習標準輸入輸出與整數算術運算的基礎題。為了讓你專注在讀入、輸出,以及用 +、-、*、/、% 推出答案,提交程式只能使用最基本的 C++ 語法。評測時會自動檢查你的程式碼,違反限制會直接得到 Wrong Answer,回饋訊息會顯示「語法限制未通過」以及違規的位置。

點我展開:本題允許與禁止的語法清單

允許使用:

  • #include <iostream>(唯一允許的 include)
  • using namespace std;
  • int main() 主函式與 return 0;
  • 宣告整數變數(例如 int、long long)
  • cin >> 讀入、cout << 輸出(>> 只能接在 cin 後面,<< 只能接在 cout 後面;可以輸出整數、變數、運算結果,也可以輸出字串或字元,例如 cout << "Hello" << '\n';、cout << "Hello\n";、cout << answer << '\n';)
  • 算術運算子:+、-、*、/、%
  • 指派運算子:=、+=、-=、*=、/=、%=
  • 註解(// 與 /* */)

禁止使用(列出常見項目):

如果你完全不知道下面某些語法是什麼意思,這是正常的;它們還沒有在這個練習階段要求掌握,也不是本題需要使用的內容。現在只要先不要使用它們即可。

  • 條件判斷與迴圈:if、else、for、while、do、switch、?:
  • 比較與邏輯運算子:<、>、<=、>=、==、!=、&&、||、!
  • ++、--
  • 陣列 []、bool、float、double、string 等型別與容器
  • 呼叫或自行定義 main 以外的任何函式(例如 max、abs、pow、sqrt、getline)
  • <iostream> 以外的標頭檔、#define 等前置處理指令

輸入格式

輸入只有一行,包含一個整數 \(x\)。

限制

  • \(1 \le x \le 9\)

輸出格式

請輸出一行,包含一個整數,代表 \(x \times 10^{50} + x\) 的值。

範例輸入

3

範例輸出

300000000000000000000000000000000000000000000000003

範例說明

\(3 \times 10^{50} + 3\) 的值共有 \(51\) 位數,如上所示。

題目頁說明

快速鍵

主要功能

  • 範例測試 — 執行題目附帶的範例測資並自動比對預期輸出。
  • 自訂測試 — 自己貼 stdin 執行程式。可勾選「與預期輸出比對 (diff)」做行對行比對。
  • 模板 — 貼上你在個人資料設定的預設程式碼模板。
  • 協作 — 與其他同學共筆編輯這題的程式碼。
  • 自動草稿 — 編輯器內容每 1.5 秒自動存到瀏覽器(per 帳號 / 題目 / 語言)。
  • 提交 — 把程式碼交給 judge 評測,回傳 AC / WA / TLE 等結果。

限制

  • 程式碼最多 65,536 字元
  • 自訂測試 stdin 與預期輸出各最多 1 MB (約 100 萬字元)
  • 自訂測試與範例測試共用一個沙箱,每人約 3 秒 1 次 (範例測試 1 秒 1 次)
  • 自訂測試與範例測試都有 15 秒 牆鐘上限(正式評測仍依題目原本時限)
  • 互動題不提供自訂測試(無法模擬與 judge 互動)。
  • 提交評測本身沒有 rate limit,但同題短時間內多次提交會被視為刷分。