首页 > 代码库 > 水仙花数

水仙花数

引子:

    英语(narcissism)译成汉语是水仙花,来自于希腊神话,美少年纳西斯在水中看到自己的倒影,便爱上了自己,憔悴而死变成了一朵花,后人称为水仙。

    我们算法中的水仙花数也叫自幂数,名字就是由此而来。

    一个三位数,如果进行数位分离,将的百位自承三次,十位自乘三次,个位自乘三次,然后相加,如果等于它本身,那这个三位数就叫做水仙花数。

    例:153的百位是1,十位为5,个位则是3,1*1*1+5*5*5+3*3*3=153,所以153是一个水仙花数,这样的数三位数里一共有四个。

 

题目:

    输入一个三位数,判断它是不是水仙花数。

 

代码:

 1 program shen5;
 2 
 3 VAR
 4   X,A,B,C:INTEGER;
 5 
 6 BEGIN
 7 
 8   READLN(X);
 9   A := X DIV 100;
10   B := X MOD 100 DIV 10;
11   C := X MOD 10;
12   IF (X = A*A*A+B*B*B+C*C*C) THEN
13     WRITELN(YES)
14   ELSE
15     WRITELN(NO)
16 END.

 

加强训练:使用循环判断并输出所有三位数中的水仙花数!

 1 program shen6;
 2 
 3 VAR
 4   X,A,B,C:INTEGER;
 5 
 6 BEGIN
 7   for x := 100 to 999 do
 8   begin
 9     A := X DIV 100;
10     B := X MOD 100 DIV 10;
11     C := X MOD 10;
12     IF (X = A*A*A+B*B*B+C*C*C) THEN
13       WRITELN(x, YES )
14   end;
15 END.

 

水仙花数