1. 程式人生 > >演算法題庫 數位和

演算法題庫 數位和

演算法題庫 數位和

題目

問題描述

數學家高斯很小的時候就天分過人。一次老師指定的算數題目是: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); } ```