1,並輸出加一以後的結果。
例如:a = [2,3,1,1,4]a=
[2,3
,1,1
,4]
則結果為 [2,3,1,1,5][2
,3,1
,1,5
]。a = [7,8,9]a=
[7,8
,9]
則結果為 [7,9,0][7
,9,0
]。第一行輸入乙個正整數 n(1 \leq n \leq 100)n(
1≤n≤
100)
,接下來的一行,輸入用空格分隔的 n
n 個 0
0 到 9
9 的非負整數組成的陣列 a[n]a[
n]。輸出一行,n
n 個用空格分隔的整數,表示加一後的新陣列。
58 9 9 9 9
樣例輸出
9 0 0 0 0
其實這道題目我沒有用到演算法,只是通過邏輯關係算出來的,沒有太多技巧,分為幾種情況來說吧,一種是輸入的陣列中是沒有9這個元素的情況,這樣很簡單,我們可以直接將陣列最後乙個元素直接加一即可其他陣列元素不變,然而我們還需要考慮陣列中存在9這個元素,我們該怎麼做呢,首先,我們通過迴圈從最後一位往前迴圈,如果遇到乙個9,那麼將他置於0,然後我們再判斷前乙個元素是否為9,如果不為9,那麼給前乙個元素加上一跳出整個迴圈,如果前乙個元素為9說明還要進製,所以我們應該跳出當前迴圈進入下一次迴圈,我測了很多組資料都是對的,可偏偏就一組不能通過,後來我想到了乙個特殊情況,比如9 9 9 9 9,那麼輸出應該是進製後的1 0 0 0 0 0,但是陣列規定長度後又不好增加,所以我們可以通過判斷進製後陣列中的乙個元素是否為0,若為0我們可以先列印乙個1這樣就可以了。
源**:
#include
using namespace std;
int a[101];
int main()
for(int i=n-1;i>=0;i--)
if(a[i]==9)
if(a[i-1]==9)
continue;}}
if(a[0]==0)
{cout<<"1 ";
for(int i=0;i
計蒜客 加一
陣列內存放了一些個位數字,組成乙個大數 從高位到低位 現在將這個數加 1 並輸出加一以後的結果。例如 a 2,3,1,1,4 則結果為 2,3,1,1,5 a 7,8,9 則結果為 7,9,0 第一行輸入乙個正整數 n 1 n 1 00 接下來的一行,輸入用空格分隔的 n 個 0到 9 的非負整數組...
計蒜客題目 加一
陣列內存放了一些個位數字,組成乙個大數 從高位到低位 現在將這個數加 1,並輸出加一以後的結果。例如 a 2,3,1,1,4 則結果為 2,3,1,1,5 a 7,8,9 則結果為 7,9,0 第一行輸入乙個正整數 n 1 n 100 接下來的一行,輸入用空格分隔的 n 個 0 到 9 的非負整數組...
計蒜客 難題題庫 217 階乘
n的階乘定義為n 1 2 3 n 如3 6 n 通常最後會有很多0,如5 120 最後有乙個0,現在統計n 去除末尾的0後,最後k位是多少 輸入格式 第一行包括兩個數n,k 輸出格式 如果n 不止k位,則輸出最後k位,如果不足k位,則將剩下的全部輸出 7!為5040,去除末尾的0為504,最後兩位為...