指定范围内的水仙数(C语言)

|

问题描述一个三位的十进制整数,如果它的三个数位的数字立方和等于这个数的数值,则称它为一个“水仙数”。编写程序,计算出某一范围内的所有“水仙数”
输入形式从控制台输入两个整数(以空格分割),分别表示数据范围的下限m和上限n,且满足0<=m<=n<=10000
输出形式向控制台输出在该数据范围内(包括数据的上下限)的所有“水仙数”,以从小到大的顺序显示在一行上,各数之间以空格分割。若该数据范围内没有“水仙数”,则输出字符串No Answe
样例输入150 370
样例输出1153 370
样例1说明输入的数据范围下限为50,上限为370。因为要求水仙数为三位数,所以实际上就是求100~370之间的 水仙数,由于13 + 53 + 33 = 153,33 + 73 + 03 = 370,因此该范围内的水仙数为153和370(包括上限370)
样例输入2110 150
样例输出2No Answer
样例2说明输入的数据范围下限为110,上限为150。因为该数据范围之间没有水仙数,所以输出字符串No Answer
#include <stdio.h>
#define N 90
int main()
{
	int m, n, i, a[N], b, c, d, j = 0;
	scanf_s("%d%d", &m, &n);
	if (m < 100)//将不是三位数的部分去掉
		m = 100;
	if (n >= 1000)
		n = 999;
	for (i = m; i <= n; i++)//判断水仙数
	{
		d = i % 10;//个位数
		b = i / 10 % 10;//十位数
		c = i / 100;//百位数
		if (i == d * d * d + b * b * b + c * c * c)
		{
			a[j] = i;
			j++;
		}
	}
	if (j == 0)
		printf("No Answer");
	for (i = 0; i < j; i++)
	{
		printf("%d ", a[i]);
	}
	return 0;
}
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值