1、什么是水仙花数?
水仙花数又称阿姆斯特朗数,是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。水仙花数只是自幂数的一种,严格来说三位数的3次幂数才成为水仙花数。
2、自幂数介绍
一位自幂数:独身数
两位自幂数:没有
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数
三位的水仙花数共有4个:153,370,371,407;
四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084;
六位的六合数只有1个:548834;
七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;
八位的八仙花数共有3个:24678050,24678051,88593477
3、Java代码
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner reader=new Scanner(System.in);
while(reader.hasNextInt()){
int m=reader.nextInt();
int n=reader.nextInt();
if(100<=m&&m<=n&&n<=999){
int j=0;
for(int i=m;i<=n;i++)
{
int geWei,shiWei,baiWei;
baiWei=i/100;
shiWei=(i-baiWei*100)/10;
geWei=i-baiWei*100-shiWei*10;
if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+baiWei*baiWei*baiWei)
{j=j+1;
if(j>1){
System.out.print(" "+i);
}
else{
System.out.print(i);
}
}
}
if(j==0){
System.out.print("no");
}
System.out.println();
}
}
}
}
4、C++代码
#include
int main(){
int m,n;
while(scanf("%d%d",&m,&n)!=EOF){
int t=0;
for(int i=m; i<=n; i++){
int a=i/100;
int b=i%100/10;
int c=i%10;
if(i==a*a*a+b*b*b+c*c*c && t==0){
printf("%d ",i);
t++;
}
else if(i==a*a*a+b*b*b+c*c*c && t==1){
printf("%d ",i);
}
}
if(t!=0){ printf("\n"); }
if(t==0){ printf("no\n"); }
}
return 0;
}
5、C#代码
using System;
namespace myApp
{
class Program
{
public static void Main()
{
string line;
string[] p;
int m, n;
while ((line = Console.ReadLine()) != null)
{
p = line.Split(' ');
n = int.Parse(p[1]);
m = int.Parse(p[0]);
var j=0;
for(var i=m;i<=n;i++)
{
int geWei,shiWei,baiWei;
baiWei = (i/100);
shiWei = ((i-baiWei*100)/10);
geWei = i-baiWei*100-shiWei*10;
if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+baiWei*baiWei*baiWei)
{
j=j+1;
if(j>1) {
Console.Write(" "+i);
}
else {
Console.Write(i);
}
}
}
if(j==0) {
Console.Write("no");
}
Console.Write("\r\n");
}
}
}
}
6、JavaScript代码
var sc;
while(sc = read_line()){
var arr = sc.split(' ');
n=parseInt(arr[1]);
m=parseInt(arr[0]);
if(100<=m&&m<=n&&n<=999){
var out = [];
var j=0;
for(var i=m;i<=n;i++)
{
var geWei,shiWei,baiWei;
baiWei=parseInt(i/100);
shiWei=parseInt((i-baiWei*100)/10);
geWei=i-baiWei*100-shiWei*10;
if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+baiWei*baiWei*baiWei)
{
j=j+1;
if(j>1){
out.push(" "+i);
}
else{
out.push(i);
}
}
}
if(j==0){
out.push("no");
}
print(out.join(''));
}
}
7、Python代码
#!/usr/bin/envpython
foriinrange(1,10);
forjinrange(0,10);
forkinrange(0,10);
ifi*100+j*10+k==i*i*i+j*j*j+k*k*k;
print(i*100+j*10+k)