大數練習題 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\) 位數,如上所示。