JAVA利用方法写输出 1-n 中的自幂数(水仙花数、四叶玫瑰数。。。。具体与c语言相似)

梦想不抛弃苦心追求的人,只要不停止追求,你们会沐浴在梦想的光辉之中。再美好的梦想与目标,再完美的计划和方案,如果不能尽快在行动中落实,最终只能是纸上谈兵,空想一番。只要瞄准了大方向,坚持不懈地做下去,才能够扫除挡在梦想前面的障碍,实现美好的人生蓝图。JAVA利用方法写输出 1-n 中的自幂数(水仙花数、四叶玫瑰数。。。。具体与c语言相似),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

JAVA利用方法写输出 1-n 中的自幂数

在这里插入图片描述

import java.util.Scanner;//输入
import java.lang.Math;//使用数学函数
public class print {
    public static void main(String[] args) {
        System.out.println("输入范围(上限):");
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        System.out.println("符合条件的有:");
        print1(num);//使用方法
    }
    public static void print1(int num){
        for(int i = 0 ; i<= num ; i++){   
            int count = 0 ;    
            int tmp = i ;
            while(tmp!=0){
                count++ ;
                tmp/=10 ;
            }//利用除10计算位数
            tmp = i ;
            long sum = 0L ;
            while(tmp!=0){
                sum+= Math.pow (tmp%10,count);//通过模10算出每一位,之后利用数学公式次方
                tmp/=10;//去除最后面一位
            }
            if(sum==i){
                System.out.print(" "+i+" ");//打印符合条件的数字
            }
        }
    }
}
测试:
输入范围(上限):
99999
符合条件的有:
 0  1  2  3  4  5  6  7  8  9  153  370  371  407  1634  8208  9474  54748  92727  93084 

代码中注意利用for循环从0开始进行第一个while是为了得到位数,第二个while是为了获得每一位,并且进行成分,幂就是第一个while所得到的,以此一直到最后输入的上限范围。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/153014.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!