題目如下:
編寫一個方法,計算一個整數各位數字之和:public static int sumDigits(long n)
例如: sumDigits(234),返回9;
我自己編寫了一段代碼如下:
package myownJava;
import java.util.Scanner;
public class SumDigits {
public static void main(String[] args){
System.out.print("Enter a number");
Scanner s = new Scanner(System.in);
int number = s.nextInt();
System.out.println("The sum of digits for"+number+"is"+sumDigits(number));
}
public static int sumDigits(long n){
int sum = 0;//存儲每個位數之和
int Temp;//存儲去掉位數的整數;
while(n!=0){//判斷該整數能否取余
int remainder = (int)n%10;
sum += remainder;
Temp = (int)n/10;
}
return sum;//返回各個位數相加之和
}
}
運行後,在Eclipse中無結果,在NetBeans中出現了1、0、1、0、1應該是掛掉了的節奏,各位技術大牛求助,我自己覺得沒錯誤啊!
加一行n = Temp; 即可正常輸出。不加的話就是死循環,所以無結果。
```public static int sumDigits(long n) {
int sum = 0;// 存儲每個位數之和
int Temp;// 存儲去掉位數的整數;
while (n != 0) {// 判斷該整數能否取余
int remainder = (int) n % 10;
sum += remainder;
Temp = (int) n / 10;
n = Temp;
}
return sum;// 返回各個位數相加之和
}