编一程序,显示所有的水仙花数。所谓水仙花数 是指一个三位数,其各位数的立方和等于该 数字本身。例如,153是水仙花数,因为 153=13+53+33
时间: 2024-02-12 20:04:38 浏览: 64
好的,以下是 Python 语言的程序,用于显示所有的水仙花数:
```python
for i in range(100, 1000):
a = i // 100 # 百位数
b = (i // 10) % 10 # 十位数
c = i % 10 # 个位数
if i == a ** 3 + b ** 3 + c ** 3:
print(i)
```
程序的思路是:首先从 100 到 999 遍历每个三位数,然后将其拆分为百位数、十位数和个位数,计算它们的立方和,如果等于该数本身,则说明该数是水仙花数,将其输出即可。
相关问题
利用Java编译输入一个三位数(xxx),输出确认它是否是一个水仙花数。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数。 例如234不是一个水仙花数。程序运行显示:
在Java中,我们可以编写一个函数来检查一个三位数是否是水仙花数。首先,我们需要读取用户的输入,并检查它是否满足三位数的条件。然后我们将每位数字立方并求和,如果和等于原数本身,则说明它是水仙花数。以下是具体的代码实现:
```java
import java.util.Scanner;
public class NarcissisticNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个三位数:");
int num = scanner.nextInt();
if (num < 100 || num > 999) {
System.out.println("输入错误,需要是三位数!");
return;
}
int sumOfCubes = checkIfNarcissistic(num);
if (sumOfCubes == num) {
System.out.println(num + " 是一个水仙花数。");
} else {
System.out.println(num + " 不是水仙花数。");
}
}
private static int checkIfNarcissistic(int number) {
int firstDigit = number / 100; // 取百位
int secondDigit = (number / 10) % 10; // 取十位
int lastDigit = number % 10; // 取个位
return Math.pow(firstDigit, 3) + Math.pow(secondDigit, 3) + Math.pow(lastDigit, 3);
}
}
```
在这个程序中,`checkIfNarcissistic` 函数负责计算和验证数字是否是水仙花数。
打印所有的水仙花数,所谓水仙花数是指一个三位数的立方和等于该数的本身c程序代码“”
当然可以,打印所有水仙花数的C语言代码如下:
```c
#include <stdio.h>
// 函数声明
int is_armstrong(int num);
int main() {
int i, limit;
printf("查找所有小于1000的水仙花数:\n");
// 遍历三位数范围内的整数
for (i = 100; i <= 999; ++i) {
// 如果数字是水仙花数,就打印出来
if (is_armstrong(i)) {
printf("%d ", i);
}
}
return 0;
}
// 检查一个数字是否是水仙花数的辅助函数
int is_armstrong(int num) {
int original_num, remainder, sum = 0;
// 把数字分解成每个位上的数字并计算它们的立方和
original_num = num;
while (original_num > 0) {
remainder = original_num % 10;
sum += pow(remainder, 3); // 使用pow函数计算立方
original_num /= 10;
}
// 数字本身就是它各个位上数字立方之和才称为水仙花数
return sum == num;
}
```
这个程序会找出所有小于1000的水仙花数。`is_armstrong`函数用于检查输入的数是否满足水仙花条件。
阅读全文