(C)PTA使用函数输出水仙花数(个人学习反思)

 PrintnN()函数使用循环就可以实现了,而narcissistic()函数里我一开始没有注意的是数字位数不一定。使用if语句太过繁琐,想到应该要用循环。

代码如下:

/* 你的代码将被嵌在这里 */
#include <math.h>//后面要用到pow()函数
int narcissistic(int number)
{
	int a = number;//number之后还会用到,所以要新赋一个进行运算
	int i = 0;//标记输入数字的位数
	int sum = 0;
	do {
		a /= 10;
		i++;
	} while (a != 0);//判断输入数字的位数
	a = number;
	while (a > 0) 
	{
		sum += pow(a % 10, i);
		a /= 10;
	}

	if (sum == number)
		return 1;
	else
		return 0;

}

void PrintN(int m, int n)
{
	int x;
	for ( x= m + 1; x < n; x++) //遍历
	{
		if (narcissistic(x) == 1)
			printf("%d\n", x);
	}
}

输出结果:

如有问题请大佬斧正,感谢!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

之也x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值