利用java写求出100至999之间所有的水仙花数。
时间: 2024-05-03 14:21:38 浏览: 50
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是Java代码实现:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int hundreds = i / 100; // 百位数字
int tens = (i % 100) / 10; // 十位数字
int ones = i % 10; // 个位数字
if (i == hundreds * hundreds * hundreds + tens * tens * tens + ones * ones * ones) {
System.out.println(i);
}
}
}
}
```
运行结果为:
153
370
371
407
相关问题
问题描述】编写一个java程序,输入一个正整数N(N大于等于100小于等于999),求出100~N之间的所有水仙花数。所谓 的水仙花数是:如果一个三位数的个位数、十位数、百位数的立方和等于该数自身,就称这个数为水仙花数。 【输入形式】输入一个正整数N。 【输出形式】输出从100到N之间的所有水仙花数,每个数以回车结束。 【样例输入】 400 【样例输出】 153 370 371 【样例说明】输入一个的正整数400,输出为100~400之间的水仙花数153,370,371
以下是Java程序的实现:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
for (int i = 100; i <= n; 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);
}
}
}
}
```
首先从控制台读入正整数N,然后利用循环遍历100到N之间的所有数。在每次循环中,将当前数的百位、十位和个位分别计算出来,然后判断当前数是否等于这三个数的立方和。如果是,就输出当前数。
利用Java,求1000以内所有的水仙花数并输出。
在Java中,水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。我们可以编写一个简单的程序来找出1000以内的所有水仙花数:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
if (isNarcissistic(i)) {
System.out.println(i);
}
}
}
// 检查一个整数是否是水仙花数
public static boolean isNarcissistic(int number) {
int sumOfCubes = 0;
String numString = Integer.toString(number);
int length = numString.length();
for (int digit : numString.toCharArray()) {
sumOfCubes += Integer.parseInt(String.valueOf(digit));
}
return sumOfCubes == number;
}
}
```
这个程序会遍历100到999之间的每个数,对每个数的每一位取立方然后相加,如果最终结果等于原数,则认为它是水仙花数,并打印出来。
阅读全文