一、水仙花数判断
1.题目描述
打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=13+53+33。
2.输入格式
无
3.输出格式
输出每一个水仙花数,一个数占一行
4.样例输入
无
5.样例输出
无
二、C语言实现
#include<stdio.h>
int main()
{
int num,hundred,decade,unit;//hundred表示百位数,decade表示十位数,unit表示个位数
for(num=100;num<1000;num++)
{
hundred=num/100;
decade=num/10%10;
unit=num%10;
if(num==pow(hundred,3)+pow(decade,3)+pow(unit,3))
printf("%d\n",num);
}
return 0;
}
输出结果
三、C++
#include<iostream>
#include<math.h> //pow函数要用到的头文件
using namespace std;
int main()
{
int num,hundred,decade,unit;//hundred表示百位数,decade表示十位数,unit表示个位数
for(num=100;num<1000;num++)
{
hundred=num/100;
decade=num/10%10;
unit=num%10;
if(num==pow(hundred,3)+pow(decade,3)+pow(unit,3))
cout<<num<<endl;
}
return 0;
}
四、java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num,hundred,decade,unit;//hundred表示百位数,decade表示十位数,unit表示个位数
for(num=100;num<1000;num++){
hundred=num/100;
decade=num/10%10;
unit=num%10;
if(num==Math.pow(hundred,3)+Math.pow(decade,3)+Math.pow(unit,3))
System.out.println(num);
}
}
}
五、python
for num in range(100,1000):
hundred=num//100 #python的整除用//
decade=num//10%10
unit=num%10
if(num==hundred**3+decade**3+unit**3):
print(num)
总结
求水仙花数的重点就是把一个数的每一分位数都表示出来,在判断其立方和是否等于它原来的数。Java乘方表示Math.pow,python中用**表示乘方,用//表示整除。