題目:
輸入一串數字,把各個位上的數字相加,直到剩一位數。求那一位數。
例如39,3+9=12,1+2=3,結果為3.
思路:簡單的字串處理。可以用九餘數定理。
九餘數定理就是乙個數對九取餘,得到的數稱之為九餘數;乙個數的九餘數等於它的各個數字上的數之和的九餘數!
39對9取餘,為3.,過程中12對9取餘還是3. 例如77,對9取餘5,7+7=14,1+4=5.本質上就是9餘數(因為取個位數。)
方法一:模擬
#includeusing namespace std;
int func(int n)
ans += n % 10;
if (ans < 10)
return ans;
else return func(ans);
}int main()
return 0;
}
方法二:九餘數#includeint main()
return 0;
}
HDU 1013九餘數定理
題目傳送門 hdu1013 九餘數定理 題目描述 給定乙個數,要求你求出它的每位上的數字之和,並且直到每位上的數字之和為個位時候輸出它 輸入 乙個整數 輸出 題目描述的結果 演算法分析 此題要用到9餘數定理。九餘數定理 乙個數對九取餘後的結果稱為九餘數。乙個數的各位數字之和相加後得到的 10的數字稱...
水題(字串的移動)
時間限制 1000 ms 記憶體限制 65535 kb 難度 1描述 小c才開始學習c語言,讓他最煩惱的就是對字元陣列的操作。小c的好朋友小e為了激勵他,出了這樣乙個題目 字串的移動輸出。並給他許諾說,如果他能夠在有限的時間內編寫出這道題目的 並順利通過就請他去吃大餐,於是小c便認真的敲這個題目的 ...
hdu 1106 排序(水題,字串)
小記 自己想出bug就是爽 思路 從左到右一位一位的加進來,碰到5就將之前形成的數放到陣列裡去。然後排序陣列輸出即可。這裡形成數的處理要注意。因為可能出現連續很多個5,所以不是一碰到5就要將乙個數放到要排序的陣列裡去。注意這點即可。另外要保證所有數都存入了陣列,我一開始就是最後那個數沒存進去,wa了...