【Java笔试题】水仙花数

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-baiWei100)/10; geWei=i-baiWei100-shiWei10; if(i==geWeigeWeigeWei+shiWeishiWeishiWei+baiWeibaiWei*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-baiWei100)/10); geWei=i-baiWei100-shiWei10; if(i==geWeigeWeigeWei+shiWeishiWeishiWei+baiWeibaiWei*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); ifi100+j10+k==iii+jjj+kkk; print(i100+j10+k)