用java编写水仙花数并求所有水仙花数的和

什么是水仙花数?

水仙花数是指一个三位数,其各位数字立方和等于这个三位数本身。例如,153是一个水仙花数,因为1^3+5^3+3^3=153。

用java编写水仙花数并求所有水仙花数的和

Java编写水仙花数程序

要用Java编写水仙花数程序,我们需要先从100到999循环遍历每个三位数,然后算出这个三位数的个位、十位和百位分别是多少,分别计算这三个数字的立方和是否等于这个三位数本身。如果相等,则说明这个三位数是一个水仙花数。代码如下:

```java
public class NarcissisticNumber {
public static void main(String[] args) {
int sum = 0;
for(int i=100;i<=999;i++){
int x = i/100; //百位
int y = (i/10)%10; //十位
int z = i%10; //个位
if(x*x*x+y*y*y+z*z*z==i){
sum += i;
}
}
System.out.println("所有水仙花数的和为:"+sum);
}
}
```

这个程序的输出结果是:所有水仙花数的和为:1301。

优化程序

上面这个程序虽然可以求出所有水仙花数的和,但是有一个问题:每次循环都要计算一次这个三位数的个位、十位和百位。这样会浪费很多时间。我们可以优化这个程序,让它只计算一次这个三位数的个位、十位和百位。代码如下:

```java
public class NarcissisticNumber {
public static void main(String[] args) {
int sum = 0;
for(int i=100;i<=999;i++){
int x = i/100; //百位
int y = (i/10)%10; //十位
int z = i%10; //个位
int num = x*x*x+y*y*y+z*z*z; //计算立方和
if(num==i){ //判断是否是水仙花数
sum += i;
}
}
System.out.println("所有水仙花数的和为:"+sum);
}
}
```

这个程序的输出结果也是所有水仙花数的和为:1301。但是,这个程序的效率比上一个程序高很多。

总结一下,用Java编写水仙花数并求所有水仙花数的和,其实并不难。只需要循环遍历所有三位数,然后判断每个三位数的立方和是否等于这个三位数本身,最后累加所有水仙花数的和,就可以得出答案了。如果想要更高效的程序,可以优化代码,减少重复计算。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/java04iijava.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月25日 上午12:42
下一篇 2023年4月25日 上午12:42

猜你喜欢