写一段java的水仙花数代码
时间: 2023-10-20 10:14:14 浏览: 82
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如:153=1³+5³+3³。
以下是Java语言实现水仙花数的代码:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int start = 100;
int end = 999;
for (int i = start; i <= end; i++) {
int sum = 0;
int temp = i;
while (temp > 0) {
int digit = temp % 10;
sum += Math.pow(digit, 3);
temp /= 10;
}
if (sum == i) {
System.out.println(i);
}
}
}
}
```
这段代码通过循环遍历100到999之间的所有三位数,然后计算每个数的各个位数的三次方之和,如果等于该数本身,就输出该数。
相关问题
用Java写一串求水仙花数的代码
以下是用Java写的求水仙花数的代码:
```java
public class NarcissisticNumber {
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 (i == a * a * a + b * b * b + c * c * c) {
System.out.println(i);
}
}
}
}
```
这段代码可以输出所有的三位水仙花数。
生成一段Java写 的水仙花数
### 回答1:
以下是Java写的水仙花数代码示例:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int start = 100;
int end = 999;
for (int i = start; i <= end; i++) {
int a = i / 100; // 百位数
int b = i / 10 % 10; // 十位数
int c = i % 10; // 个位数
if (i == a * a * a + b * b * b + c * c * c) {
System.out.println(i);
}
}
}
}
```
该代码可以输出从100到999之间的所有水仙花数。水仙花数指一个三位数,其各位数字立方和等于该数本身。
### 回答2:
水仙花数是指一个 n 位数(n≥3),它的每个位上的数字的 n 次幂之和等于它本身。例如,153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
要生成一段 Java 代码来找出所有的水仙花数,可以使用嵌套循环来遍历所有可能的 n 位数,并对每个数字进行计算和判断。
以下是一段生成水仙花数的 Java 代码:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int n = 3; // 定义位数
for (int i = (int) Math.pow(10, n-1); i < Math.pow(10, n); i++) {
int current = i;
int sum = 0;
while (current > 0) {
int digit = current % 10;
sum += Math.pow(digit, n);
current /= 10;
}
if (sum == i) {
System.out.println(i); // 输出水仙花数
}
}
}
}
```
在以上代码中,我们通过 for 循环从 10^(n-1) 开始遍历到 10^n,对每个遍历到的数字,我们使用一个 while 循环来计算该数字的每位数字的 n 次幂之和,然后与原数字进行比较。如果相等,就将该数字输出为水仙花数。
通过运行以上代码,我们可以得到所有的 n 位数水仙花数。请注意,代码中的 n 可以根据实际需求进行修改。
### 回答3:
水仙花数,又称为自恋数或阿姆斯特朗数,是一个三位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。现在,我将用Java语言生成一段程序来找出所有的水仙花数。
首先,我们需要用三个嵌套的循环来遍历所有的三位数。外层循环控制百位数字的变化,中层循环控制十位数字的变化,内层循环控制个位数字的变化。
具体代码如下:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 0; j <= 9; j++) {
for (int k = 0; k <= 9; k++) {
int number = i * 100 + j * 10 + k;
int sum = i * i * i + j * j * j + k * k * k;
if (number == sum) {
System.out.println(number);
}
}
}
}
}
}
```
以上代码中,`i`代表百位数字,`j`代表十位数字,`k`代表个位数字。我们通过`number`保存当前的三位数,通过`sum`计算该三位数的各数字立方和。
在内层循环中,我们将`number`与`sum`进行比较,如果相等,则打印出该水仙花数。
以上就是用Java语言生成一段找出所有水仙花数的程序。
阅读全文