用java语言写一个有关水仙花数的程序
时间: 2023-09-05 22:04:37 浏览: 102
### 回答1:
Java语言写一个有关水仙花数的程序可以这样:
public class NarcissisticNumber
{
// 计算水仙花数
public static void main(String[] args)
{
int sum, tmp, n;
for(int i = 100; i < 1000; i++)
{
sum = 0;
n = i;
while(n > 0)
{
tmp = n % 10;
sum = sum + tmp * tmp * tmp;
n = n / 10;
}
if(sum == i)
{
System.out.println(i);
}
}
}
}
### 回答2:
水仙花数是指一个三位数,它的每个位上的数字的立方和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
下面是用Java语言编写的一个关于水仙花数的程序:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i <= 999; i++) {
if (isNarcissisticNumber(i)) {
System.out.println(i);
}
}
}
public static boolean isNarcissisticNumber(int num) {
int sum = 0;
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += Math.pow(digit, 3);
temp /= 10;
}
return sum == num;
}
}
```
程序中通过一个循环遍历所有三位数,然后调用`isNarcissisticNumber`方法来判断该数是否是水仙花数。`isNarcissisticNumber`方法使用一个临时变量`temp`来遍历该数的每一位,通过对数字取余和整除10来获取每位数字,并使用Math.pow方法来求得每位数字的立方和。最后将立方和与原数字作比较,如果相等,则认为该数是水仙花数。程序运行结果会输出所有的水仙花数。
### 回答3:
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
要用Java语言编写一个程序来判断一个数字是否为水仙花数,可以按照以下步骤进行:
1. 定义一个方法,命名为isNarcissisticNumber,用于判断一个整数是否为水仙花数。
2. 在方法中,获取输入的整数的位数,可以将其转换为字符串并使用length()方法来获取位数。
3. 将输入的整数保存至另一个变量中,以便后续计算。
4. 使用一个循环,从最高位开始,依次取出每一位数进行计算。
5. 在循环中,取出每一位数时,可以先将整数除以10的相应次幂取余(取模运算),得到当前位上的数字。
6. 将当前位上的数字进行n次幂运算,并将结果累加到一个变量中,用于后续判断。
7. 在循环结束后,判断累加的结果是否等于输入的整数,若相等,则说明是水仙花数,返回true;否则,返回false。
8. 在主函数中,获取用户输入的一个整数,并调用isNarcissisticNumber方法进行判断。
9. 根据返回的结果,输出相应的信息,如“输入的整数是水仙花数”或“输入的整数不是水仙花数”。
完成以上步骤后,就可以通过执行程序来判断一个整数是否为水仙花数了。这个程序可以适应不同位数的输入整数,因为它会动态地计算数字的位数,然后依次判断每一位的n次幂之和。
阅读全文