本节重点:
1.理解常见算法时间函数的增长情况
2.输出各函数的值
3.学会调用math.h 中的函数
4.学会只使用一个函数调用多个函数
声明:
以下内容仅供学习,如有侵权,联系作者删除。
参考文献:数据结构上机实验指导p4
代码段展示:
求对数函数和指数函数的值:(调用头文件中sqrt函数)
其中运用了对数函数性质log10(n)/log10(2)=log2(n)(以二为底数,n为真数)
#include<stdio.h>
#include<math.h>
//目的:理解常见算法时间函数的增长情况
//内容:输出 各函数的值
double log2(double n){//求对数函数的值
return log10(n)/log10(2);
}
long exponent(int n){//求指数函数的值
long s=1;
for(int i=1;i<=n;i++)
s*=2;
return s;
}
求阶乘函数的值:(简单的for循环和连乘)
long factorial(int n){//求n!的值
long s=1;
for(int i=1;i<n;i++){
s*=i;
}
return s;
}
输出函数:
void fun(int n){
printf("log2(n) sqrt(n) n nlog2(n) n^2 n^3 2^n n!\n");
printf("=========================================\n");
for(int i = 1;i<=n;i++){
printf("%5.2f\t",log2(i)); //log2(n)
printf("%5.2f\t",sqrt(i)); //n^1/2
printf("%2d\t",i); //n
printf("%7.2f\t",i*log2(i)); //nlog2(n)
printf("%5d\t",i*i); //n^2
printf("%7d\t",i*i*i); //n^3
printf("%8d\t",exponent(i)); //2^n
printf("%8d\t",factorial(i)); //n!
}
}//用一个函数封装之前的计算函数,然后使用主函数进行输入后输出这个函数,提高效率
主函数:
int main(){
int n=10;
fun(n);
return 1;
}
注意到,主函数仅调用了一个函数!!!函数封装的重要性