现在的位置: 首页 > 04 循环结构 > 正文

for循环(水仙花数)

2013年11月27日 04 循环结构 ⁄ 共 167字 ⁄ 字号 for循环(水仙花数)已关闭评论

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;
}

shuixianhua

抱歉!评论已关闭.