输出水仙花数,C语言,不用for循环
时间: 2024-10-22 21:24:20 浏览: 45
在C语言中,如果想输出水仙花数(即三位数每位数字立方之和等于该数本身),可以使用递归函数来实现,因为不需要传统的for循环。下面是一个简单的示例:
```c
#include <stdio.h>
int is_armstrong(int num) {
int original_num = num;
int sum = 0;
while (num > 0) {
int digit = num % 10;
sum += pow(digit, 3);
num /= 10;
}
return original_num == sum;
}
void print_armstrong_numbers() {
for (int i = 100; i <= 999; i++) {
if (is_armstrong(i)) {
printf("%d ", i);
}
}
}
int main() {
print_armstrong_numbers();
return 0;
}
```
在这个程序中,`is_armstrong()` 函数用于检查一个数是否是水仙花数,而 `print_armstrong_numbers()` 函数则遍历并打印出所有的水仙花数。
相关问题
使用函数输出水仙花数 c语言
在C语言中,可以使用函数来输出水仙花数。水仙花数是指一个n位数,其各个位上的数字的n次方之和等于该数本身。以下是一个示例代码:
```c
#include <stdio.h>
#include <math.h>
// 函数声明
int isArmstrong(int num);
int main() {
int start, end, i;
printf("请输入起始数:");
scanf("%d", &start);
printf("请输入结束数:");
scanf("%d", &end);
printf("水仙花数:");
for (i = start; i <= end; i++) {
if (isArmstrong(i)) {
printf("%d ", i);
}
}
return 0;
}
// 判断是否为水仙花数的函数
int isArmstrong(int num) {
int originalNum, remainder, n = 0, result = 0;
originalNum = num;
// 计算位数
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
// 计算各位数字的n次方之和
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
// 判断是否为水仙花数
if (result == num) {
return 1;
} else {
return 0;
}
}
```
这段代码中,我们定义了一个`isArmstrong`函数来判断一个数是否为水仙花数。然后在`main`函数中,我们通过输入起始数和结束数,使用循环遍历这个范围内的所有数,并调用`isArmstrong`函数来判断是否为水仙花数,如果是则输出。
C语言输出水仙花数。用for循环语句y
在C语言中,输出水仙花数是指那些每一位数字的立方和等于其本身的三位数。例如,153就是水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
以下是使用for循环计算并打印水仙花数的简单C程序:
```c
#include <stdio.h>
int main() {
int num;
for (int i = 100; i <= 999; ++i) { // 遍历100到999之间的所有三位数
int hundreds = i / 100; // 取百位
int tens = (i % 100) / 10; // 取十位
int ones = i % 10; // 取个位
if (hundreds * hundreds * hundreds + tens * tens * tens + ones * ones * ones == i) { // 检查是否满足条件
printf("%d is a narcissistic number.\n", i);
}
}
return 0;
}
```
这个程序首先初始化一个变量`num`,然后通过for循环遍历100到999的所有整数,将每个数分解成百位、十位和个位,并计算它们各自立方之和。如果和等于原始数本身,则认为它是水仙花数,并打印出来。
阅读全文