java水仙花数实验
时间: 2024-01-12 18:21:37 浏览: 83
以下是Java实现水仙花数的代码示例:
```java
import java.util.Scanner;
public class NarcissisticNumber {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个三位数:");
int num = sc.nextInt();
int g = num % 10;
int s = (num / 10) % 10;
int b = num / 100;
int sum = (g * g * g) + (s * s * s) + (b * b * b);
if (sum == num) {
System.out.println(num + "是水仙花数");
} else {
System.out.println(num + "不是水仙花数");
}
}
}
```
相关问题
Java水仙花数pta
### Java 实现水仙花数算法
对于给定的正整数范围 M 和 N,程序需找出此范围内所有的三位水仙花数。所谓三位水仙花数指的是一个三位数如果恰好等于其各位数字立方之和,则该数被称为水仙花数[^1]。
下面是一个完整的 Java 程序来实现这一功能:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int m = 100; // 范围起点,默认设为最小三位数
int n = 999; // 范围终点,默认设为最大三位数
System.out.println("在 " + m + " 到 " + n + " 的范围内, 所有的水仙花数如下:");
for (int num = Math.max(m, 100); num <= Math.min(n, 999); ++num){
if(isNarcissistic(num)){
System.out.print(num + " ");
}
}
}
private static boolean isNarcissistic(int number){
int sum = 0;
int temp = number;
while(temp != 0){
int digit = temp % 10;
sum += Math.pow(digit, 3);
temp /= 10;
}
return sum == number;
}
}
```
这段代码定义了一个名为 `isNarcissistic` 的辅助方法用于判断某个特定数值是否满足水仙花数条件;主函数遍历指定区间的每一个可能值,并调用上述方法验证这些值是否符合条件,最后打印出所有找到的结果。
java水仙花数算法
水仙花数是指一个n位数,其各位数字的n次方之和等于该数本身。例如,一个三位数的水仙花数就是各个位上的数字的立方和等于该数本身,如153(1^3 + 5^3 + 3^3 = 153)。在Java中编写一个算法来找出所有三位数的水仙花数,可以遵循以下步骤:
1. 初始化一个循环,从100开始,因为水仙花数至少是三位数,到999结束,因为这是三位数的最大值。
2. 对于循环中的每个数,计算出其各个位上的数字。
3. 分别计算这些数字的三次方,并求和。
4. 判断计算出的立方和是否等于原始的数,如果相等,则输出这个数。
以下是一个简单的Java程序示例:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
System.out.println("三位数的水仙花数有:");
for (int i = 100; i < 1000; i++) {
int hundred = i / 100; // 百位数
int ten = (i / 10) % 10; // 十位数
int one = i % 10; // 个位数
if (Math.pow(hundred, 3) + Math.pow(ten, 3) + Math.pow(one, 3) == i) {
System.out.println(i);
}
}
}
}
```
阅读全文