【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-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)

你可能感兴趣的:(Java笔试题)