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