用java求水仙花数最经典的代码
来源:互联网 发布:足彩单式出票软件 编辑:程序博客网 时间:2024/05/19 13:20
每一位的该数位数次方之后等于该数,那么该数为水仙花数
如:153=1的3次方+5的3次方+3的3次方,注意:这里位数不确定,需要动态的获取。
思路分析:
a)输入n在101到99999的数字-》利用循环
b)找出100到n的所有数字-》利用循环
c)判断当前的数字是否是水仙花数
1)由153=1的3次方+5的3次方+3的3次方 分析,153就是判断数字,可以直接获取到
2)3次方——》数的位数
3) 1,3,5——》数的每一位数字
4) 1的3次方-->数的次方
5) 1的3次方+5的3次方+3的3次方---》累加求和
6)求和之后与数字153比较即可判断
import java.util.Scanner;
public class Test7{
public static void main(String args[]){
demo();
}
public static void demo(){
int n=inputInt2(101,99999);
for(int num=101;num<=n;num++){
if(isFlowerNum(num)){
System.out.println(num);
}
}
}
public static boolean isFlowerNum(int num){
int oldNum=num;
int ws=weishu(num);
int cfNum=0;
while(true){
int gw=num%10;
int cf=ciFang(gw,ws);
cfNum+=cf;
num/=10;
if(num==0){
break;
}
}
if(oldNum==cfNum){
return true;
}
return false;
}
public static int ciFang(int num1,int num2){
int sum=1;
for(int i=0;i<num2;i++){
sum*=num1;
}
return sum;
}
public static int weishu(int num){
int count=0;
do{
num/=10;
count++;
}while(num!=0);
return count;
}
public static int inputInt2(int min,int max){
int in=inputInt();
while(true){
if(in>=min&&in<=max){
return in;
}
}
}
public static int inputInt(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数:");
int in=sc.nextInt();
return in;
}
}
- 用java求水仙花数最经典的代码
- 用java求水仙花数
- java求1000以内的水仙花数
- 求水仙花数的
- java语言:求水仙花数
- java实例-求水仙花数
- 【大风】水仙花数最简短,运行速度最快的代码
- 求三位数的水仙花数
- 求所有的水仙花数
- 求水仙花数的算法
- 求所有的水仙花数
- 求三位数的水仙花数
- 非常经典的JAVA编程题(水仙花数)
- java经典算法-打出三位数的所有水仙花数
- java技术支持 求1000之内的所有水仙花数
- java技术支持 求1000之内的所有水仙花数
- Java的if、switch...case控制语句 求水仙花数
- 用java求1000之内所有的 “水仙花数 “,所谓 “水仙花数 “是指一个三位数,其各位数字立方和等于该数本身
- 一二三级联动
- Android 基于AOP监控之——AspectJ使用指南
- 不使用数据线连接手机调试app 显示Log日志
- C语言字符串、数组与指针结合
- vertica-数据库强制关闭
- 用java求水仙花数最经典的代码
- win2012R2配置双网卡绑定
- adb logcat 查看日志命令行用法(简版)
- ZOJ,PKU--训练题分类
- nyoj1248 海岛争霸(第七届河南省程序设计大赛)
- 使用adb shell 进入手机修改文件的权限
- LeetCode-74&240.Search a 2D Matrix
- POJ 3635 Dragon Balls (并查集)
- #学习笔记#(63)拖拽HTML5-drag-drop座位表