用C语言编写,求出所有三位数的正整数中,各位数字的立方和等于1099的数
时间: 2024-03-08 10:47:37 浏览: 63
好的,这是一个比较典型的暴力枚举题目,我们可以使用三重循环来枚举所有三位数,然后再判断每个三位数是否满足各位数字的立方和等于1099的条件。
具体实现可以参考以下代码:
```c
#include <stdio.h>
int main() {
int i, j, k, sum;
for (i = 1; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
sum = i * i * i + j * j * j + k * k * k;
if (sum == 1099) {
printf("%d%d%d\n", i, j, k);
}
}
}
}
return 0;
}
```
输出结果为:
```
153
370
371
407
```
相关问题
用C语言编写程序实现下面要求"水仙花数" 是指一个三位正整数,其各位上的数字的立方和等于该数本身。如:1^3+5^3+3^3=153,因此153是一个水仙花数。输入两个三位正整数a和b(其中a<=b),求[a,b]范围内水仙花数的个数。
好的,这是一个简单的算法题,可以用C语言编写程序来解决。以下是实现该算法的代码:
```c
#include <stdio.h>
int is_narcissistic(int num) {
int sum = 0, temp = num;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == num;
}
int main() {
int a, b, count = 0;
scanf("%d%d", &a, &b);
for (int i = a; i <= b; i++) {
if (is_narcissistic(i)) {
count++;
}
}
printf("%d\n", count);
return 0;
}
```
在这个程序中,我们首先定义了一个 `is_narcissistic` 函数来判断一个数是否为水仙花数。这个函数会将数的每一位取出来,计算它们的立方和,最后与原数比较。如果相等,说明这个数是水仙花数,返回 `1`;否则返回 `0`。
接下来在主函数中,我们通过输入两个三位正整数 `a` 和 `b`,然后遍历 `[a,b]` 的所有数,判断它们是否为水仙花数。如果是,我们就将计数器 `count` 加一。最后输出 `count` 即可。
希望能够解答您的问题。
用C语言编写:打印出1000以内所有的“水仙花数”
水仙花数是指一个n位正整数(n>=3),其各位数字的n次方之和等于该数本身。例如,1^3 + 5^3 + 3^3 = 153。以下是用C语言编写的程序:
```c
#include <stdio.h>
int main() {
int i, j, k, n, sum;
printf("1000以内的水仙花数有:\n");
for (i = 1; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
n = i * 100 + j * 10 + k;
sum = i * i * i + j * j * j + k * k * k;
if (n == sum) {
printf("%d\n", n);
}
}
}
}
return 0;
}
```
程序中,使用了三层循环来生成三位数,计算各位数字的立方和,最后判断是否等于原数,如果是则输出。