请给我一个打印水仙花数的程序
时间: 2023-03-20 15:00:28 浏览: 80
当一个3位数等于其各位数字的立方和时,我们称其为水仙花数。以下是一个打印水仙花数的Python程序示例:
```python
for num in range(100, 1000):
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num)
```
这个程序将在控制台上打印所有的3位水仙花数,即153、370和371。
相关问题
请给我一个打印水仙花数的程序用C语言
### 回答1:
以下是用C语言编写的打印水仙花数的程序:
```c
#include <stdio.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("请输入一个三位数:");
scanf("%d", &num);
originalNum = num;
while (originalNum != 0) {
remainder = originalNum % 10;
result += remainder * remainder * remainder;
originalNum /= 10;
}
if (result == num) {
printf("%d 是一个水仙花数\n", num);
} else {
printf("%d 不是一个水仙花数\n", num);
}
return 0;
}
```
解释:用户输入一个三位数,程序通过循环计算出该数各位数字的立方和,然后与原数比较,若相等则输出该数为水仙花数,否则输出不是水仙花数。
### 回答2:
下面是一个用C语言写的打印水仙花数的程序:
```c
#include <stdio.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("请输入一个整数:");
scanf("%d", &num);
originalNum = num;
while (originalNum != 0) {
remainder = originalNum % 10;
result += remainder * remainder * remainder;
originalNum /= 10;
}
if (result == num) {
printf("%d是水仙花数", num);
} else {
printf("%d不是水仙花数", num);
}
return 0;
}
```
这个程序首先要求用户输入一个整数,然后通过循环将该整数的每一位数字的立方累加到 result 变量中。最后,程序通过比较 result 和原始输入的整数 num 判断是否是水仙花数,并进行相应的打印输出。
### 回答3:
当用户输入一个正整数n时,下面的C语言程序可以打印出所有小于n的水仙花数。
```c
#include <stdio.h>
#include <math.h>
int isArmstrong(int num) {
int original = num;
int sum = 0;
int digits = 0;
// 计算数字位数
while (num != 0) {
num /= 10;
digits++;
}
num = original;
// 计算每位数字的立方和
while (num != 0) {
int digit = num % 10;
sum += pow(digit, digits);
num /= 10;
}
// 判断是否为水仙花数
if (sum == original) {
return 1;
} else {
return 0;
}
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("小于%d的水仙花数有:\n", n);
for (int i = 0; i < n; i++) {
if (isArmstrong(i)) {
printf("%d ", i);
}
}
return 0;
}
```
这个程序首先定义了一个函数`isArmstrong`来判断一个数是否为水仙花数。它按照水仙花数的定义,计算出每位数字的立方和,并与原始数字进行比较。
在`main`函数中,用户可以输入一个正整数n,然后通过循环遍历所有小于n的数字,如果是水仙花数,则打印出来。
注意,水仙花数是指一个三位数,其各个位上数字的立方和等于该数本身。比如153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
帮我写一个水仙花数的程序
### 回答1:
当然可以帮您写一个水仙花数的程序,具体如下:
#include <stdio.h>
#include <math.h>
int main()
{
int n, sum = 0, m, count = 0;
printf("请输入一个三位数: ");
scanf("%d",&n);
m = n;
while(m != 0)
{
count++;
m /= 10;
}
m = n;
while(m != 0)
{
sum += pow(m % 10, count);
m /= 10;
}
if(sum == n)
printf("%d 是一个水仙花数", n);
else
printf("%d 不是一个水仙花数", n);
return 0;
}
输出结果如下:
请输入一个三位数: 153
153 是一个水仙花数
### 回答2:
水仙花数是指一个三位数,它的各位数字的立方和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是一个简单的程序来判断三位数中的水仙花数:
```python
def find_armstrong_numbers():
armstrong_numbers = []
for num in range(100, 1000):
# 個位數字
digit1 = num % 10
# 十位數字
digit2 = (num // 10) % 10
# 百位數字
digit3 = num // 100
# 判斷是否為水仙花數
if num == (digit1 ** 3 + digit2 ** 3 + digit3 ** 3):
armstrong_numbers.append(num)
return armstrong_numbers
# 呼叫函數,印出結果
result = find_armstrong_numbers()
print("水仙花数:", result)
```
运行以上代码,将会输出结果为:
水仙花数: [153, 370, 371, 407]
以上是一个简单的水仙花数判断程序,它利用了循环遍历三位数,并通过取模和整除运算分解数字,再判断立方和是否等于原数字来确定是否为水仙花数。程序将所有的水仙花数存储在一个列表中,并最终打印出来。