关于C语言算法基础学习之水仙花数

题目:

水仙花数是指一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身。(例如:1^3 + 2^3 + 3^3 = 123)

我给出两种方法,但是大同小异,先求出个十百位数,再进行判断即可,非常简单入门的!

方法1:直接利用数学相乘

#include <stdio.h>
#include <stdlib.h>


int main()
{
	int i, j1 = 0, j2 = 0, j3 = 0;
	for (i = 100;i < 1000; i++)
	{
		j1 = i % 10;//求后个位数
		j2 = i / 10 % 10;//求后十位数
		j3 = i / 100;//求后百位数

		if (i == j1 * j1 * j1 + j2 * j2 * j2 + j3 * j3 * j3)
		{
			printf("%d\n", i);
		}
	}
	return 0;
}

效果如图:

 

方法2:利用math文件里的pow函数进行计算

pow(_In_ double _X, _In_ double _Y);//其实是求X的Y次幂
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
	int i, j1 = 0, j2 = 0, j3 = 0;
	for (i = 100; i < 1000; i++)
	{
		j1 = i % 10;//求后个位数
		j2 = i / 10 % 10;//求后十位数
		j3 = i / 100;//求后百位数

		if (i == pow(j1,3) + pow(j2, 3)+ pow(j3, 3))
		{
			printf("%d\n", i);
		}
	}
	return 0;
}

 效果如图:

可以看见使用自带的数学函数库的函数进行运算后可以减小一部分的运行时间!

为什么呢?下面是人工智能回答的!

C语言使用数学函数库(如math.h)可以使其在执行数学运算时更高效和更快速。这是因为数学函数库中的函数是由专门的开发人员编写的,并针对特定的数学运算进行了优化。

这些函数库中的数学函数经过了精心设计和调优,以提供高效的数学计算。它们通常使用了更高级、更复杂的算法和数据结构,以获得更快的计算速度和更高的精度。与自己编写的函数相比,使用数学函数库可以节省大量的时间和精力。

此外,数学函数库还可以利用硬件加速(如浮点运算单元)来执行高性能的数学运算。这些硬件加速可以在执行数学计算时大大提高计算速度。

综上所述,C语言使用数学函数库可以使其在进行数学运算时更快速和高效,这对于需要进行大量数学计算的应用程序来说尤为重要。

当你看到这里,先恭喜你,又给自己添加了一丝丝的知识和能力!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

桂北研猛男

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

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

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

打赏作者

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

抵扣说明:

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

余额充值