水仙花数的解法

package cn;

import java.lang.reflect.Method;

/**
 * 三位的水仙花数共有4个:153,370,371,407
 *
 */
public class DaffodilNumber {
	public static void main(String[] args) {
		method1();
		/**
		 *  三位水仙花数是:153
		 *	三位水仙花数是:370
		 *	三位水仙花数是:371
		 *	三位水仙花数是:407
		 */
		System.out.println("--------");
		method2();
		/**
		 *  三位水仙花数是:153
		 *	三位水仙花数是:370
		 *	三位水仙花数是:371
		 *	三位水仙花数是:407
		 */

	}
	/**
	 * 求出三位水仙花数的方法一
	 */
	public static void method1(){
		for (int i = 100; i <= 999; i++) {
			int ge = i % 10;
			int shi = i /10 % 10;
			int bai = i / 10 /10 % 10;
			if(i== ge*ge*ge +shi*shi*shi + bai*bai*bai){
				System.out.println("三位水仙花数是:"+i+"\t");
			}
		}
	}
	/**
	 * 求出三位水仙花数的方法二
	 * 调用Math.pow(a,b)
	 */
	public static void method2(){
		for (int i = 100; i <= 999; i++) {
			int ge = i % 10;
			int shi = i /10 %10;
			int bai = i /10 /10 %10;
			if(i == Math.pow(ge, 3) +Math.pow(shi, 3)+Math.pow(bai, 3)){
				System.out.println("三位水仙花数是:"+i+"\t");
			}
		}
	}

}
时间: 2024-11-25 19:20:13

水仙花数的解法的相关文章

21位水仙花数—题解

一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数. 例如: 当N=3时,153就满足条件,因为1^3+5^3+3^3=153,这样的数字也被称为水仙花数(其中,"^"表示乘方,5^3表示5的3次方,也就是立方). 当N=4时,1634满足条件,因为1^4+6^4+3^4+4^4=1634. 当N=5时,92727满足条件. 实际上,对N的每个取值,可能有多个数字满足条件. 程序的任务是:求当N=21时,所有满足条件的水仙花数.注意:这个整数有21

练习题5:水仙花数

题目描述 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: "水仙花数"是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3. 现在要求输出所有在m和n范围内的水仙花数. 输入描述: 输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999). 输出描述: 对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在

python 打印所有的水仙花数

目标分析: #水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身. 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 利用for循环控制100-999个数,每个数分解出个位,十位,百位. 一.参考解法: 1 for a in range(1,10): 2 for b in range(0,10): 3 for c in range(0,10): 4 s1= a*100+b*10+c 5 s2= pow(a,3)+pow(

筛选水仙花数

//水仙花数--个位的平方+十位的平方+百位的平方(等于==)该三位数 #include<stdio.h>int main(){ int ge,shi,bai; //从100开始筛选for(int i=100;i<1000;i++){ ge=i%10; shi=i/10%10; bai=i/100%10; if(a==ge*ge*ge+shi*shi*shi+bai*bai*bai){//水仙花数的判断条件 //输出 printf("%d\t",i); }} retu

js算法集合(一) 水仙花数 及拓展(自幂数的判断)

js算法集合(一) ★ 最近有些朋友跟我说对js中的一些算法感到很迷惑,知道这个算法到底是怎么回事,但是就是不会用代码把它写出来,这里我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,希望能对大家有所帮助. 1.验证一个数是否为水仙花数 ①要写水仙花数的算法,我们首先来了解一下什么是水仙花数,水仙花数是指一个 3位正整数 ,它的每个位上的数字的 3次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153): ②了解了什么是水仙花数我们就开始分析该怎么下手.通过定义来看

51NOD 1016 水仙花数 V2(打表)

传送门 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身.(例如:1^3 + 5^3 + 3^3 = 153,1634 = 1^4 + 6^4 + 3^4 + 4^4). 给出一个整数M,求 >= M的最小的水仙花数. Input 一个整数M(10 <= M <= 10^60) Output 输出>= M的最小的水仙花数,如果没有符合条件的水仙花数,则输出:No Solution Input示例 300 Output示例 370 解题思路:

水仙花数

描述 请判断一个数是不是水仙花数.其中水仙花数定义各个位数立方和等于它本身的三位数. 输入 有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000) 输入0表示程序输入结束. 输出 如果n是水仙花数就输出Yes 否则输出No 样例输入 153 154 0 样例输出 Yes No 1 #include <stdio.h> 2 3 int main(){ 4 int number; 5 int sum; 6 int temp; 7 8 while(1){ 9 scanf(

如何用C#寻找100到999的所有水仙花数?

首先解释一下何为水仙花数:水仙花数只是自幂数的一种,严格来说是三位数的个位.十位.百位的3次幂数相加等于原来的数字,称为水仙花数.(例如:1^3 + 5^3+ 3^3 = 153) 那么如何通过C#语句来解决这个问题呢? 分析:想要找到百位的水仙花数,要解决的问题由两个,第一个是如何让计算机正确分离出百位数的个位.十位.百位的数字.第二个是如何将其不断循环让100到999都能经过检验. 第一个问题:将这个数值类型定义为整型int(这种数据类型的数字是没有小数点的) 最高位数字--对100整除,则

3 水仙花数

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身. 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位. 1 @SuppressWarnings({"rawtypes","unchecked"}) 2 public class _003ShuiXianFlo