java水仙花数

2025-06-20 18:36:39
推荐回答(5个)
回答1:

public class ShuiXianShu
{

/**
* 题目:打印出100-999之间所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
* 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
* 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。*
*/
public static void main(String[] args)
{
for(int i=100;i<=999;i++)
{
int geWei,shiWei,baiWei;
baiWei=i/100;
shiWei=(i-baiWei*100)/10;
geWei=i-baiWei*100-shiWei*10;
if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+baiWei*baiWei*baiWei)
{
System.out.println(i);
}
}

}

}
这个是我以前做过的,楼主可以参考

回答2:

public class ShuiXianShu {
/**
* 题目:打印出100-999之间所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
* 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。*
*/
public static void main(String[] args) {
for (int i = 100; i <= 999; i++) {
int geWei, shiWei, baiWei;
baiWei = i / 100;
shiWei = (i - baiWei * 100) / 10;
geWei = i - baiWei * 100 - shiWei * 10;
if (i == Math.pow(geWei,3) + Math.pow(shiWei,3) + Math.pow(baiWei,3)) {
System.out.println(i);
}
}
}
}

注:求N次方可以用java.lang.Math.pow(a, b);
表示为a的b次方的值。

回答3:

/*计算打印出所有的 "水仙花数 "
* 所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。
* 例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
* */
public class ShuiXiangHua {
public static void main(String[] args) {
int b1,b2,b3;//分别代表百位,十位,个位
for(int i=100;i<1000;i++) {
b1=i/100; //分解百位数
b2=i%100/10; //分解十位数
b3=i%10; //分解个位数
if((b1*b1*b1+b2*b2*b2+b3*b3*b3)==i) {
System.out.println(i);
}

}
}

回答4:

package baidu;
import java.util.Scanner;
public class Daffodils {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入查找水仙花的范围:0~");
int max = scanner.nextInt();
scanner.close();
for (int n = 1; n <= max; n++) { // 判断n是否为水仙花数
int sum = 0;
for (int m = n; m > 0; m /= 10) {
int v = m % 10;
sum += v * v * v;
}
if (n == sum) {
System.out.print(n + " ");
}
}
}
}

我写的这个判断效果比较好,求采纳

回答5:

public class test {
public static void main(String[] args) {
for(int i=100; i<1000; i++){
int a = i/100;
int b = i/10%10;
int c = i%10;
if(Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3)==i)
System.out.println(i+"是水仙花数");
}
}
}