用c语言编写一个程序自动输出1000以内的一个水仙花数
时间: 2024-03-20 11:43:07 浏览: 22
好的,以下是用 C 语言编写的程序,可以自动输出 1000 以内的水仙花数:
```c
#include <stdio.h>
#include <math.h>
int main() {
int i, num, sum;
printf("1000以内的水仙花数有:\n");
for (i = 100; i <= 999; i++) {
num = i;
sum = 0;
while (num) {
sum += pow(num % 10, 3);
num /= 10;
}
if (sum == i) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
程序的思路是,利用 for 循环遍历 100 到 999 之间的所有整数,对于每个整数,通过 while 循环计算它的每一位数字的立方和,并将结果与该整数比较,如果相等,则输出该整数。在这个过程中,需要用到 `pow()` 函数来计算数字的立方。
相关问题
c语言中编写一个程序 输出所有水仙花数
好的,以下是C语言实现输出所有水仙花数的代码:
```c
#include <stdio.h>
int main() {
int num, digit1, digit2, digit3;
printf("所有的水仙花数为:\n");
for(num = 100; num <= 999; num++) {
digit1 = num / 100; // 获取百位数字
digit2 = (num / 10) % 10; // 获取十位数字
digit3 = num % 10; // 获取个位数字
if(num == digit1 * digit1 * digit1 +
digit2 * digit2 * digit2 +
digit3 * digit3 * digit3) {
printf("%d\n", num); // 输出水仙花数
}
}
return 0;
}
```
运行程序后,即可输出所有的水仙花数。
用c语言编写一个能输出所有“水仙花数”的程序
以下是使用 C 语言编写的输出所有水仙花数的程序:
```
#include <stdio.h>
#include <math.h>
int main() {
int number, originalNumber, remainder, result = 0, n = 0;
printf("水仙花数是指一个 n 位数 (n>=3),它的每个数位数字的 n 次方之和等于它本身。例如:153 = 1^3 + 5^3 + 3^3\n");
printf("所有的水仙花数有:");
for (number = 100; number <= 999; number++) {
originalNumber = number;
while (originalNumber != 0) {
originalNumber /= 10;
++n;
}
originalNumber = number;
while (originalNumber != 0) {
remainder = originalNumber % 10;
result += pow(remainder, n);
originalNumber /= 10;
}
if (result == number) {
printf("%d ", number);
}
n = 0;
result = 0;
}
printf("\n");
return 0;
}
```
这个程序会输出所有的三位数水仙花数,即 153、370、371 和 407。