C语言 经典例题一百道 14 打印所有的“水仙花数”,所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

eg:

153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。

#include "stdio.h"
void main()
{
    int n,a,b,c;
    for(n = 100 ; n <= 999 ; n++)
    {
        a = n / 100 ;

        b = n / 10 % 10 ;

        c = n % 100 % 10 ;

        if(a*a*a+b*b*b+c*c*c==n)
        {
            printf("%d  ",n);
        }

    }
    printf("\n");
}

扩展:输入一个数,判断其是不是水仙花数。

#include "stdio.h"
void main()
{
    int n,a,b,c;

    printf("请输入一个三位数\n"); 
 
    scanf("%d",&n);

    a = n / 100 ;

    b = n / 10 % 10 ;

    c = n % 100 % 10 ; 

    if(a*a*a+b*b*b+c*c*c==n)
    {
        printf("该数为水仙花数\n");
    }
    else
    {
        printf("该数不是水仙花说\n");
    }
    

}

考查知识点:

一个三位数单独取百位,十位,个位。

‘ / ’ ' % ' 的区别,一个是除法,根据数据的类型,得出值。

一个是取余数。

方法二:打印出所有水仙花数。


 

猜你喜欢

转载自blog.csdn.net/qq_26974599/article/details/81292041
今日推荐