题目:
水仙花数是指一个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语言使用数学函数库可以使其在进行数学运算时更快速和高效,这对于需要进行大量数学计算的应用程序来说尤为重要。
”
当你看到这里,先恭喜你,又给自己添加了一丝丝的知识和能力!