朴素算法:不详细讲了,就是先算x乘x,算完结果在乘x,直到n个x相乘
分治算法(看图比较方便)
如图:算法先将X^n分开,分到不能再分为止(分的时候是调用自身函数),程序运行时也是如此,当不能再分时开始和从下往上和,例如3^6,先算sum=3*3*3,再算sum=sum*sum(即sum=3^3*3^3)
朴素算法与分治算法计算X^n的算法比较
#include<stdio.h>
#include<stdlib.h>//strand,rand函数头文件
#include<time.h>//clock函数头文件
doubleputong(int x,int n)//普通方法计算X^n
{
double time;//运行时间
clock_t beg,end;//起始时间,结束时间
beg=clock(); //普通方法起始时间
long long he=1;//存储结果
int i;
for(i=1;i<=n;i++) //循环计算结果