[英]Do while loops (Java)
我試圖寫一個程序來求和每個4位數字的每個數字。 例如,我從1000開始,一旦加了1001,千就變成2,百變成0,十變成0,單位變成1。這應該繼續將每個數字相加,直到達到9999。這是我的代碼,只輸出9999。
int num = 1000, unit = 0, ten = 0, hundred = 0, thousand = 0, newNum = 0, sumth = 0, sumh = 0, sumten = 0, sumu = 0;
while (num <= 9999)
{
unit = num%10;
newNum = num/10;
ten = newNum%10;
newNum=newNum/10;
hundred = newNum%10;
thousand = newNum/10;
num++;
}
sumth = thousand + sumth;
sumh = hundred + sumh;
sumten = ten + sumten;
sumu = unit + sumu;
System.out.println(sumth + " " + sumh + " " + sumten + " " + sumu);
對此進行一些整理以提高可讀性:
int num = 1000,
sumThousands = 0,
sumHundreds = 0,
sumTens = 0,
sumUnits = 0;
while (num <= 9999)
{
int units = num % 10;
int tens = (num / 10) % 10;
int hundreds = (num / 100) % 10;
int thousands = (num / 1000) % 10;
sumUnits += units;
sumTens += tens;
sumHundreds += hundreds;
sumThousands += thousands;
num++;
}
System.out.println(sumThousands + " " + sumHundreds + " " + sumTens + " " + sumUnits);
您將獲得的輸出是:
45000 40500 40500 40500
這是預期的。 對於整數1000..9999:
1000(9+8+7+6+5+4+3+2+1) = 1000(9(10)/2) = 45000
900(9+8+7+6+5+4+3+2+1) = 900(9(10)/2) = 40500
它應該在while loop
內移動
while (num <= 9999)
{
unit = num%10;
newNum = num/10;
ten = newNum%10;
newNum=newNum/10;
hundred = newNum%10;
thousand = newNum/10;
sumth = thousand + sumth;
sumh = hundred + sumh;
sumten = ten + sumten;
sumu = unit + sumu
num++;
}
輸出: 45000 40500 40500 40500
工作鏈接: https : //ideone.com/WrAX8D
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.