演算法題庫 數位和
阿新 • • 發佈:2018-12-30
演算法題庫 數位和
題目
問題描述
數學家高斯很小的時候就天分過人。一次老師指定的算數題目是:1+2+…+100。
高斯立即做出答案:5050!
這次你的任務是類似的。但並非是把一個個的數字加起來,而是對該數字的每一個數位作累加。
這樣從1加到100的“和”是:901
從10加到15是:21,也就是:1+0+1+1+1+2+1+3+1+4+1+5,這個口算都可以出結果的。
按這樣的“加法”,從1加到1000是多少呢? 請通過瀏覽器提交該結果。
當然,我們並不期望你能像高斯一樣,發現數字背後深奧的祕密,只要請計算機幫忙,一切都easy!
注意:你需要提交的是一個整數,不要填寫任何多餘的內容(比如:說明性文字)
解題思路
1、定義變數sum儲存和值,x儲存i值,以免對i進行操作時導致迴圈錯亂。
2、通過對10取餘獲得x個位上數字,獲得完畢後x/10%10便取到十位上的數字…迴圈直到取完所有數位,x=0時則表示取餘完畢。
3、通過sum+x%10計算出每一個數位作累加和。
結果:13501
//java程式碼
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;//儲存和
for(int i=1;i<1001 ;i++){//遍歷1到1000
int x=i;//舉例:123%10=3,123/10=12,12%10=2,12/10=1,1%10=1,1/10=0.
while(x!=0){
sum=sum+x%10;//擷取x的個位上的數並相加
x=x/10;//x值更新。
}
}
System.out.println(sum);
}
```