for循环(水仙花数)
所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数字本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3。
有两种思路来求水仙花数:分离和合成
假设 i 是三位整数,分别用整数 a、b、c来表示其百位数、十位数和个位数。
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> int main() { int i,a,b,c; for (i=100; i<=999; i++) { a=i/100; b=i/10%10; c=i%10; if (i==a*a*a+b*b*b+c*c*c) printf("%d\n", i); } return 0; } |
求解本题有多种思路。假设整数a、b、c分别表示三位整数n的百位、十位和个位,那么 n=a*100+b*10+c
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> int main() { int a,b,c,n; for (a=1; a<10; a++) for (b=0; b<10; b++) for (c=0; c<10; c++) { n=100*a+10*b+c; if (n==a*a*a+b*b*b+c*c*c)) printf("%d\n",n); } return 0; } |