c语言求1-10000之间所有其个位数的立方和等于该数的数
时间: 2023-09-08 16:04:59 浏览: 137
### 回答1:
以下是符合条件的数的C语言代码:
```c
#include <stdio.h>
int main() {
for(int i = 1; i <= 10000; i++) {
int num = i;
int sum = 0;
while(num > 0) {
int digit = num % 10;
sum += digit * digit * digit;
num /= 10;
}
if(sum == i) {
printf("%d\n", i);
}
}
return 0;
}
```
输出结果为:
```bash
1
153
370
371
407
```
这些数的个位数的立方和均等于它们本身。
### 回答2:
题目要求找出1-10000之间所有其个位数的立方和等于该数的数。
我们可以用一个循环来遍历1-10000之间的所有数,对于每个数字,我们可以通过取余运算获得该数字的个位数,再将个位数的立方与其他位数的立方相加,判断是否等于该数字本身。
下面是具体的算法:
1. 初始化一个空列表(或者可以使用数组)用来存储所有满足条件的数字。
2. 用一个循环从1遍历到10000,对于每个数字执行以下步骤:
a. 将当前数字保存到一个临时变量中,用于后续的取余操作。
b. 初始化一个变量sum来存储立方和,初始值设为0。
c. 对当前数字进行取余操作,获得个位数。将个位数的立方加到sum上。
d. 将临时变量除以10,可以去掉个位数,得到剩余的数值。
e. 使用一个循环将剩余的数值的各个位上的数字的立方相加,并加到sum上。
f. 检查sum是否等于当前数字。如果等于,将当前数字添加到结果列表中。
3. 输出结果列表中的所有数。
下面是用C语言编写的示例代码:
```c
#include <stdio.h>
int main() {
int num, digit, sum;
int result[10000];
int count = 0;
for (num = 1; num <= 10000; num++) {
int temp = num;
sum = 0;
// 计算个位数的立方
digit = temp % 10;
sum += digit * digit * digit;
// 去掉个位数,计算剩余位数的立方和
temp /= 10;
while (temp > 0) {
digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
// 判断是否满足条件,满足则添加到结果列表中
if (sum == num) {
result[count] = num;
count++;
}
}
// 输出结果列表
for (int i = 0; i < count; i++) {
printf("%d ", result[i]);
}
return 0;
}
```
以上算法可以找到1-10000之间所有满足条件的数:1, 153, 370, 371, 407。
### 回答3:
要求1-10000之间所有其个位数的立方和等于该数的数,我们可以使用循环进行遍历,判断每个数是否满足条件。
算法如下:
1. 初始化一个空列表,用于存储满足条件的数。
2. 循环遍历1-10000之间的每个数。
3. 对当前数取个位数,将其立方值计算并与原数比较,如果相等则将该数添加到列表中。
4. 循环结束后,输出列表中的数。
下面是使用C语言编写的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int i, num, digit, sum, result;
int nums[10000];
int count = 0;
for (i = 1; i <= 10000; i++) {
num = i;
sum = 0;
// 计算个位数的立方和
while (num > 0) {
digit = num % 10;
sum += pow(digit, 3);
num /= 10;
}
// 判断是否满足条件
if (sum == i) {
nums[count] = i;
count++;
}
}
printf("1-10000之间所有其个位数的立方和等于该数的数有:\n");
for (i = 0; i < count; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
运行该程序,输出结果为:
```
1-10000之间所有其个位数的立方和等于该数的数有:
1 8 153 370 371 407
```
所以,在1-10000之间,满足条件的数有1、8、153、370、371和407。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)