非常经典的JAVA编程题(水仙花数)
2016-04-29 09:50
531 查看
代码下载:https://github.com/IsResultXaL/Algorithm/blob/master/src/FindDaffodilNumber.java
有更好的方案请在评论里分享!
题目:打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个”水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
有更好的方案请在评论里分享!
题目:打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个”水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
import java.util.ArrayList; import java.util.List; /** * 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 * @author Administrator * 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 */ public class FindDaffodilNumber { //分解整数 public static List<Integer> getNumber(int number){ List<Integer> list = new ArrayList<Integer>(); list.add(number%10); //个位数 list.add(number/10%10); //十位数 list.add(number/100); //百位数 return list; } public static void main(String[] args) { for(int i = 100;i<1000;i++){ List<Integer> list = getNumber(i); int count = 0; for(int j = 0;j<list.size();j++){ int cubed = (int)Math.pow(list.get(j), 3); count = count + cubed; } if(count == i){ System.out.println("水仙花数:"+i); } } } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树