| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 60900 人关注过本帖
标题:JAVA每周一题(3)-----水仙花数
只看楼主 加入收藏
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
结帖率:90.32%
收藏
已结贴  问题点数:100 回复次数:18 
JAVA每周一题(3)-----水仙花数
求100-999中的水仙花数,(若三位数abc,abc=a^3+b^3+c^3, 则称abc为水仙花数。如153,1^3+5^3+3^3=1+125+27=153,则153是水仙花数)
搜索更多相关主题的帖子: JAVA 水仙花 
2010-06-28 09:29
谁与争疯
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:海南省
等 级:版主
威 望:191
帖 子:15071
专家分:17513
注 册:2007-4-22
收藏
得分:10 
我X,搞这种。

论坛是我家灌水靠大家
2010-06-28 10:16
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
以下是引用谁与争疯在2010-6-28 10:16:21的发言:

我X,搞这种。
你是来结婚的吗?

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-06-28 10:33
wy19860426
Rank: 2
等 级:论坛游民
帖 子:31
专家分:29
注 册:2010-3-30
收藏
得分:20 
public class FlowerNumber {
    public static void main(String[] args){
        System.out.println("100~999之间的水仙花数是:");
        for(int custNo=100;custNo<=999;custNo++){
            int geWei=custNo%10;
            int shiWei=custNo/10%10;
            int baiWei=custNo/100%10;
            if(custNo==geWei*geWei*geWei+shiWei*shiWei*shiWei+baiWei*baiWei*baiWei){
                System.out.println(custNo);
            }
        }
    }
}


============================
0~999之间的水仙花数是:
153
370
371
407
2010-06-28 19:13
wy19860426
Rank: 2
等 级:论坛游民
帖 子:31
专家分:29
注 册:2010-3-30
收藏
得分:0 
以下是引用wy19860426在2010-6-28 19:13:30的发言:

public class FlowerNumber {
    public static void main(String[] args){
        System.out.println("100~999之间的水仙花数是:");
        for(int custNo=100;custNo<=999;custNo++){
            int geWei=custNo%10;
            int shiWei=custNo/10%10;
            int baiWei=custNo/100%10;
            if(custNo==geWei*geWei*geWei+shiWei*shiWei*shiWei+baiWei*baiWei*baiWei){
                System.out.println(custNo);
            }
        }
    }
}


============================
0~999之间的水仙花数是:
153
370
371
407
打错了,是100~999之间
2010-06-28 19:14
ljwei
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:46
专家分:192
注 册:2009-9-18
收藏
得分:20 
程序代码:
import java.util.Scanner;

public class shuixianhua
{
    public static void main(String[] args)
    {
    int x=100,i,a,b,c;
    for(;x<=999;x++)
        {
        a=x%10;b=((x-a)%100)/10;c=(x-b*10-a)/100;/*a为个位,b为十位,c为百位*/       
        if(x==(Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3)))
        System.out.print(x+"\t");
        }
   
    }
}
2010-06-28 19:41
珊瑚背
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:21
注 册:2010-6-27
收藏
得分:20 
程序代码:
//水仙花数
class Daffodils {
    public static boolean isDaffodils(int a) {  //判断是否水仙花数
        int hundred = a / 100 % 10;
        int ten = a / 10  % 10;
        int unit = a % 10;
        return (a == hundred*hundred*hundred + ten*ten*ten + unit*unit*unit) ? true : false;
    }
  public static void printDaffodils(int a, int b) {   //输出从a到b的水仙花数
      for (int i = a; i <= b; i++) {
          if (Daffodils.isDaffodils(i))    
            System.out.println(i);
        }
    }
}

public class MyClass {
    public static void main(String[] args) {
        int from = 100, to = 999;      //从 100 到 999
        System.out.println("以下是您要的水仙花数 从" + from + "到" + to);
        Daffodils.printDaffodils(from, to);
    }
}
//欢迎拍砖,谢谢
2010-06-28 21:56
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:30 
程序代码:
import java.util.Scanner;

public class NarcissisticNumber
{
    static int place(int s)
    {
        int i=0;
        for(;s!=0;i++)
        {
            s/=10;
        }
        return i;
    }
    static void action(int s,int e)
    {
        int c=0,n;
        for(int i=s;i<=e;i++)
        {
            int sum=0,t=i;
            n=NarcissisticNumber.place(t);
            for(;t!=0;)
            {
                sum+=Math.pow(t%10,n);
                t/=10;
            }
            if(i==sum)
            {
                c++;
                System.out.println(i+"是水仙花数。");
            }
        }
        if(0==c)
        {
            System.out.println(s+"到"+e+"区间内没有水仙花数。");
        }
    }
    static boolean judge(int s)
    {
        int sum=0,n;
        n=NarcissisticNumber.place(s);
        for(int i=0,t=s;t!=0;i++)
        {
            sum+=Math.pow(t%10, n);
            t/=10;
        }
        if(s==sum)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    /**
     * @param args
     */
    public static void main(String[] args)
    {
        Scanner in=new Scanner(System.in);
        
        System.out.println("请输入你要判断水仙花数的起始数字");
        int s=in.nextInt();
        System.out.println("请输入你要判断水仙花数的末数字,若只判断一个数是否为水仙花数,请输入1");
        int e=in.nextInt();
        if(e==1|s==e)
        {
            if(NarcissisticNumber.judge(s))
            {
                System.out.println(s+"是水仙花数。");
            }
            else
            {
                System.out.println(s+"不是水仙花数。");
            }
        }
        else
        {
            NarcissisticNumber.action(s,e);
        }
    }
}
这个是我老早以前写的   不管几位都能测
2010-06-30 06:25
linjx0123
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
注 册:2006-4-7
收藏
得分:0 
大家的思路都是把一个数按位拆开来运算的。怎么没有人反过来,按组合来做啊。比如153.就是由数字1,5,3组合起来的
只要满足a^3+b^3+c^3 = a*100+b*10+c就行了。从效率来讲,这样会好一点。
2010-06-30 10:22
看春
Rank: 2
等 级:论坛游民
帖 子:6
专家分:17
注 册:2009-11-9
收藏
得分:0 
回复 9楼 linjx0123
因为拆分感觉比较直观,按照这种思路应该怎么写呢?谢谢指教!
2010-07-01 16:07
快速回复:JAVA每周一题(3)-----水仙花数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018295 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved