| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2517 人关注过本帖
标题:java递归求水仙花数
只看楼主 加入收藏
Donet
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-6-28
收藏
 问题点数:0 回复次数:7 
java递归求水仙花数
请问一下各位如何实现java递归求水仙花数
搜索更多相关主题的帖子: 水仙花 java 递归 
2007-12-24 13:07
Donet
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-6-28
收藏
得分:0 
哎呀没人知道的啊,我现在找到了一个但不能全算出来,望大家指正指正的了
import java.math.*;
class  hi
{
    
    public static void main(String[] args)
    {
        
        int a=100;
        System.out.println(vd(a));
        
    }
    public static int vd(int b)
        {
        int i=b%10;//各位
        int j=(b/10)%10;//十位
        int k=(b/100);//百位

            if(k*100+j*10+i==Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3))
            return k*100+j*10+i;
            return vd(b+1);
            
        }
}
2007-12-24 15:58
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
你用个循环,从100到999一个一个看就行了,一共4个水仙花数

I'm here, as always...
2007-12-24 16:04
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
public class A {
    public static void main(String[] args) {
        int a, b, c;
        for(int i = 100; i<=999; i++){
            a = i / 100;
            b = (i % 100) / 10;
            c = i % 10;
            if(i == (a*a*a+b*b*b+c*c*c)){
                System.out.println(i);
            }
        }
    }
}
没用递归,水仙花数就是三位数,感觉这样就可以了,用递归貌似有点多余,仅供参考

I'm here, as always...
2007-12-24 16:23
Donet
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-6-28
收藏
得分:0 
解决了
没人解决还是自己来解决了吧
import java.math.*;
class  hi
{
    
    public static void main(String[] args)
    {
        int a=100;
         vd(a);
        
    }
    public static int vd(int b)
        {
        if(b<1000){
        int i=b%10;//各位
        int j=(b/10)%10;//十位
        int k=(b/100);//百位

            if(k*100+j*10+i==Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3))
           System.out.println( k*100+j*10+i);
            vd(b+1);
        }
        return 0;
        }

}
2007-12-24 16:34
Donet
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-6-28
收藏
得分:0 
非常感谢
谢谢了
  上面那位老兄,但是你的那个方法太普篇了,有时候我就是想换个思维来整
2007-12-24 16:36
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
int a=100;
    System.out.println(vd(a));
你把这些语句写成
for(int a = 100; a <= 999; a++){
     Sysout.out.println(vd(a));
}
就可以了,不过你的vd()方法有点问题,会有很多结果显示出来,而且有1000没有371这个数,你可以看看

[[italic] 本帖最后由 hwoarangzk 于 2007-12-24 16:48 编辑 [/italic]]

I'm here, as always...
2007-12-24 16:47
Donet
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-6-28
收藏
得分:0 
谢谢了
那个程序我已经调试过了的,是正确的。谢谢了,我绝得你那样做的话,可能就不是递归了样。
2007-12-24 22:54
快速回复:java递归求水仙花数
数据加载中...
 
   



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

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