程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> java-JAVA 我想在10到1000之間打印各個數位之和為5的數字,這樣寫有什麼錯,新手求大神指點

java-JAVA 我想在10到1000之間打印各個數位之和為5的數字,這樣寫有什麼錯,新手求大神指點

編輯:編程解疑
JAVA 我想在10到1000之間打印各個數位之和為5的數字,這樣寫有什麼錯,新手求大神指點

public class Demo1 {
public static void main(String []args){
int n=10;
int t=n;
int sum=0;
while(t<=1000)
{
t++;
sum=sum+t%10;
t=t/10;
}
if(sum==5)
{
System.out.println("各個數位之和為5的有:"+t);
}
}
}

最佳回答:


你的代碼的while只是統計某個數的各個位上的數值之和,但是又不太正確。正確的是需要兩層循環,外層從10-1000;內層循環計算每個數的各個位數和。修正如下:

 public class Demo1 {
    public static void main(String[] args) {
        int n = 10;
        //外層循環從10-1000
        for(int i =n;i<1000;i++){
            int sum = 0;
            int t =i;
            //內層循環,計算i的每個數位上的數字和
            while (t>0) {
                sum = sum + t % 10;
                t = t / 10;
            }
            if (sum == 5) {
                System.out.println("各個數位之和為5的有:" + i);
            }
        }
    }
}

這樣測試就OK了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved