用C语言写个代码一个三位的十进制整数,如果它的三个数位的数字立方和等于这个数的数值,则称它为一个“水仙数”。编写程序,计算出某一范围内的所有“水仙数”。从控制台输入两个整数(以空格分割),分别表示数据范围的下限m和上限n,且满足0<=m<=n<=10000。向控制台输出在该数据范围内(包括数据的上下限)的所有“水仙数”,以从小到大的顺序显示在一行上,各数之间以空格分割。若该数据范围内没有“水仙数”,则输出字符串No Answer。
时间: 2024-01-24 09:17:23 浏览: 122
嵌入式系统应用大作业 设计一个基于51单片机的计算器,实现三位十进制整数的加减乘除运算。 如果除法运算不能整除,则结果要精确到
下面是用C语言实现的代码:
```c
#include <stdio.h>
int main()
{
int m, n, i;
int a, b, c; // 三位数的各个数位上的数字
int sum; // 三位数的各个数位上数字的立方和
scanf("%d %d", &m, &n);
int flag = 0; // 标记是否存在水仙数
for (i = m; i <= n; i++)
{
a = i / 100; // 获取百位上的数字
b = i / 10 % 10; // 获取十位上的数字
c = i % 10; // 获取个位上的数字
sum = a * a * a + b * b * b + c * c * c; // 计算立方和
if (i == sum) // 判断是否为水仙数
{
printf("%d ", i);
flag = 1; // 存在水仙数
}
}
if (flag == 0) // 如果不存在水仙数
printf("No Answer");
return 0;
}
```
代码思路如下:
1. 从控制台输入数据范围的下限m和上限n。
2. 用for循环枚举数据范围内的每一个三位数。
3. 分别获取每个三位数的百位、十位和个位上的数字。
4. 计算这个三位数各个数位上数字的立方和。
5. 判断该三位数是否等于立方和,如果相等则输出该数,并标记存在水仙数。
6. 最后根据标记判断是否存在水仙数,如果不存在则输出字符串"No Answer"。
阅读全文