引子:
英语(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.