使用二重循环编写程序,输出 1~10 000 之间所有水仙花数并统计个数。 水仙花数就是满足各位数字的立方和等于它本身的数。用c语言且只用循环
时间: 2024-03-24 20:36:59 浏览: 9
好的,以下是一个只使用循环的 C 语言代码示例,可以输出 1~10 000 之间所有水仙花数并统计个数:
```c
#include <stdio.h>
int main() {
int count = 0;
for (int i = 1; i <= 10000; i++) {
int sum = 0;
for (int j = i; j > 0; j /= 10) {
int digit = j % 10;
sum += digit * digit * digit;
}
if (sum == i) {
printf("%d\n", i);
count++;
}
}
printf("共有 %d 个水仙花数。\n", count);
return 0;
}
```
这个程序使用两个嵌套的 for 循环来枚举 1~10 000 之间的所有数字,并在内层循环中计算每个数字的各位数字的立方和。在外层循环中,如果当前数字的各位数字的立方和等于它本身,则将其输出,并将计数器加 1。在循环结束后,我们使用 `printf` 函数输出水仙花数的个数。
相关问题
C语言使用二重for循环嵌套实现:输出2~100之间的所有完全数每个数后跟一个空格的代码
以下是C语言使用二重for循环嵌套实现输出2~100之间的所有完全数每个数后跟一个空格的代码:
```c
#include <stdio.h>
int main() {
int i, j, sum;
for (i = 2; i <= 100; i++) {
sum = 0;
for (j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d ", i);
}
}
return 0;
}
```
用c语言 二重for循环嵌套实现:输出2~100之间所有的完全数
完全数是指一个数等于它的因子之和,例如6=1+2+3。以下是使用二重for循环嵌套实现输出2~100之间所有的完全数的C语言代码:
```c
#include <stdio.h>
int main() {
int i, j, sum;
// 外层循环枚举2~100之间的数
for (i = 2; i <= 100; i++) {
sum = 0;
// 内层循环枚举i的因子
for (j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
// 如果i等于它的因子之和,就输出i
if (sum == i) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
代码的思路是,外层循环枚举2~100之间的数,内层循环枚举当前数的因子,并计算它们的和。如果当前数等于它的因子之和,就输出它。注意,内层循环只需要枚举到i的前一个数,因为1肯定是所有数的因子,而i本身不算因子。