例6-7:在3位數中找一個滿足下列要求的正整數n:其各位數字的立方和恰好等於它本身。例如,371=33+73+13。 要判斷n是否滿足要求,必須將它的各位數字分拆開。 百位數字:n/100。n是整數,所以n/100不保留商的小數位,甩掉的是十位和個位數字,結果必然是百位數字。例如371/100的結果是3。 十位數字:n/10%10。n/10的結果甩掉的是個位數字,保留n的百位和十位數字,再除以10取餘數,結果必然是n的十位數字。例如371/10的結果是37,37%10的結果是7。 個位數字:n%10。n除以10取餘數,結果一定是n的個位數字。371%10的結果是1。 main() {intn,i,j,k; for(n=100;n<1000;n++)/*對所有的3位數迴圈*/ {i=n/100;/*的百位數字*/ j=n/10%10;/*的十位數字*/ k=n%10;/*的個位數字*/ if(n==i*i*i+j*j*j+k*k*k) {printf("%d=%d*%d*%d+%d*%d*%d+%d*%d*%d\n",n,i,i,i,j,j,j,k,k,k); break;/*只要求找一個滿足條件的數,所以找到後立即退出迴圈*/ } } } 例6-8:輸出2位數中所有能同時被3和5整除的數。 2位數的範圍是[10,99],能同時被3和5整除的數n滿足條件:n%3==0&&n%5==0。 不能同時被3和5整除的數n滿足條件:n%3!=0||n%5!=0。 main() {intn; for(n=10;n<100;n++) {if(n%3!=0||n%5!=0)continue;/*n不滿足要求,結束本次迴圈*/ printf("%5d",n);} } 執行程式,輸出結果是:153045607590 對2位數迴圈,即n=10,11,……,99。若不滿足要求,應跳過輸出語句轉而考察下一個n。所以用continue語句結束本次迴圈。若n滿足要求,則輸出n。 若把程式中continue語句換成break語句,則執行程式將無任何輸出。因為n=10時,滿足條件n%3!=0||n%5!=0,所以執行break語句,終止迴圈。
例6-7:在3位數中找一個滿足下列要求的正整數n:其各位數字的立方和恰好等於它本身。例如,371=33+73+13。 要判斷n是否滿足要求,必須將它的各位數字分拆開。 百位數字:n/100。n是整數,所以n/100不保留商的小數位,甩掉的是十位和個位數字,結果必然是百位數字。例如371/100的結果是3。 十位數字:n/10%10。n/10的結果甩掉的是個位數字,保留n的百位和十位數字,再除以10取餘數,結果必然是n的十位數字。例如371/10的結果是37,37%10的結果是7。 個位數字:n%10。n除以10取餘數,結果一定是n的個位數字。371%10的結果是1。 main() {intn,i,j,k; for(n=100;n<1000;n++)/*對所有的3位數迴圈*/ {i=n/100;/*的百位數字*/ j=n/10%10;/*的十位數字*/ k=n%10;/*的個位數字*/ if(n==i*i*i+j*j*j+k*k*k) {printf("%d=%d*%d*%d+%d*%d*%d+%d*%d*%d\n",n,i,i,i,j,j,j,k,k,k); break;/*只要求找一個滿足條件的數,所以找到後立即退出迴圈*/ } } } 例6-8:輸出2位數中所有能同時被3和5整除的數。 2位數的範圍是[10,99],能同時被3和5整除的數n滿足條件:n%3==0&&n%5==0。 不能同時被3和5整除的數n滿足條件:n%3!=0||n%5!=0。 main() {intn; for(n=10;n<100;n++) {if(n%3!=0||n%5!=0)continue;/*n不滿足要求,結束本次迴圈*/ printf("%5d",n);} } 執行程式,輸出結果是:153045607590 對2位數迴圈,即n=10,11,……,99。若不滿足要求,應跳過輸出語句轉而考察下一個n。所以用continue語句結束本次迴圈。若n滿足要求,則輸出n。 若把程式中continue語句換成break語句,則執行程式將無任何輸出。因為n=10時,滿足條件n%3!=0||n%5!=0,所以執行break語句,終止迴圈。