标题:一个新手编写求100~M的水仙花数
取消只看楼主
梦想不停
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-4-15
结帖率:100%
已结贴  问题点数:20 回复次数:2 
一个新手编写求100~M的水仙花数
package rubbit;
import java.util.*;
public class 水仙花数 {
    static int i,N=1;
     static int jf(int n1,int n2)//定义一个乘方的方法
    {       for(i=0;i<n2;i++)
            N=N*n1;
            return N;
    }
    public static void main(String args[]){
        @SuppressWarnings("resource")
        Scanner in=new Scanner(System.in);
        System.out.print("请输入一个整数(最好大于4位数)");
        int M=in.nextInt();
        int k,b,j,mod,sum=0,n=0;//n是j的位数
        for(j=100;j<=M;j++)
            {{b=j;
            do{b=b/10;
            n++;
             }
            while(b!=0);}//判断j是几位数
        for(k=0;k<n;k++)//是否为水仙花数
        {   mod=b%10;
            b=b/10;
            sum=sum+jf(mod,n);
        }n=0;
        if(sum==j)
            System.out.print(j+" ");
            }
    }
   

}看看程序哪里有错,主要是算法

[此贴子已经被作者于2017-4-25 18:57编辑过]

搜索更多相关主题的帖子: package public return import 水仙花 
2017-04-25 11:54
梦想不停
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-4-15
得分:0 
回复 2楼 zsh981022984
M只是提供一个范围时用到的数而已呀,是100~M之间的数用j来循环遍历并判断是不是水仙花数,有一个错误b已经是0了,下面一层循环不应该用b,但是改了还是不行

[此贴子已经被作者于2017-4-26 13:57编辑过]

2017-04-25 18:56
梦想不停
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-4-15
得分:0 
回复 4楼 zsh981022984
sum是一个问题,后来我又发现方法的N=1应该放到方法里的括号里
2017-04-26 22:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-476414-1-1.html




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

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