用Java写一个计算N位的水仙花数程序
时间: 2023-09-19 16:06:09 浏览: 191
用java写的水仙花数
### 回答1:
水仙花数是指一个三位数,它的各位数字的立方和等于其本身。例如,153是一个水仙花数,因为153=1^3+5^3+3^3。
下面是用 Java 来写一个计算 N 位的水仙花数的程序的代码示例:
```
public class NarcissisticNumber {
public static void main(String[] args) {
int n = 3; // N 位数的水仙花数,这里设置为 3 位数
for (int i = 100; i < 1000; i++) { // 因为是 3 位数,所以从 100 到 999 枚举
int a = i / 100; // 得到百位上的数字
int b = (i / 10) % 10; // 得到十位上的数字
int c = i % 10; // 得到个位上的数字
if (a*a*a + b*b*b + c*c*c == i) { // 如果是水仙花数,输出
System.out.println(i);
}
}
}
}
```
这段代码会枚举从 100 到 999 的数字,判断是否是 N 位的水仙花数,如果是就输出。
希望这个示例能帮到你!
### 回答2:
水仙花数是指一个N位数(N≥3),其各位上数字的N次方之和等于该数本身。下面是用Java编写的一个计算N位水仙花数的程序:
```java
import java.util.Scanner;
public class NarcissisticNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入位数N:");
int n = scanner.nextInt();
scanner.close();
int start = (int) Math.pow(10, n-1); // 起始数,如3位数的起始数是100
int end = (int) Math.pow(10, n) - 1; // 终止数,如3位数的终止数是999
System.out.println(n + "位水仙花数有:");
for (int i = start; i <= end; i++) {
if (isNarcissisticNumber(i, n)) {
System.out.println(i);
}
}
}
// 判断一个数是否为N位水仙花数
public static boolean isNarcissisticNumber(int num, int n) {
int sum = 0;
int temp = num;
while (temp > 0) {
int digit = temp % 10; // 获取当前位的数字
sum += Math.pow(digit, n); // 求和
temp /= 10; // 去掉最低位
}
return num == sum;
}
}
```
用户输入位数N后,程序会计算出N位水仙花数的范围,然后逐个判断这些数是否为水仙花数,并输出结果。
### 回答3:
水仙花数是指一个N位数,其每个位上的数字的N次幂之和等于原数本身。现在我来编写一个用Java语言实现计算N位水仙花数的程序。
首先,我们需要用户输入N位数的位数N。接下来,我们定义一个循环从10的N-1次方开始,一直到10的N次方-1。循环中,我们取当前循环变量的每个位上的数字,进行N次幂运算并求和。然后,我们将计算出的和与当前循环变量进行比较,如果相等则输出该数。
下面是Java代码的实现:
```java
import java.util.Scanner;
public class NarcissisticNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入N位数的位数N:");
int N = scanner.nextInt();
int start = (int) Math.pow(10, N-1);
int end = (int) Math.pow(10, N) - 1;
for (int i = start; i <= end; i++) {
int num = i;
int sum = 0;
while (num != 0) {
int digit = num % 10;
sum += Math.pow(digit, N);
num /= 10;
}
if (sum == i) {
System.out.println(i);
}
}
}
}
```
用户运行程序后,程序会要求输入N位数的位数N。然后,程序会计算出所有N位水仙花数,并将其输出。
阅读全文