分别用蛮力法、分治法、减治法实现a的N次方.doc
算法设计与分析实验报告一学 号 姓 名 日 期 2012.11.5 得 分 一、实验内容分别用蛮力法、分治法、减治法实现an。二、实验要求 完成试验报告、给出对此结果。 为防止大数溢出,可以用1n来测试在n比较大是的三种算法运行情况。四、源程序及注释include iostreaminclude windows.husing namespace std;蛮力法求a的n次方int Power1int a,int n int as1; forint i0;in;i ans*a; return ans;分治法求a的n次方int Power2int a,int n int ans1; if n0 ans1;else ifn1 ansa; else ansPower2a,n/2*Power2a,n1/2; return ans;减治法求a的n次方int Power3int a,int n int ans1; if n0 ans1; else ifn1 ansa; else ansPower3a,n/2; ifn20 ansans*ans;当n为偶数 return ans;int mainint a1;int n10000;LARGE_INTEGER start1,end1,start2,end2,start3,end3,f;QueryPeranceFrequencyQueryPeranceCounterint p1Power1a,n;QueryPeranceCounterQueryPeranceCounterint p2Power2a,n;QueryPeranceCounterQueryPeranceCounterint p3Power3a,n;QueryPeranceCountercoutaa,nnendl;cout蛮力法求a的n次方运行时间(单位s)及结果endldoubleend1.QuadPart-start1.QuadPart/f.QuadPart p1endl;cout分治法求a的n次方运行时间(单位s)及结果endldoubleend2.QuadPart-start2.QuadPart/f.QuadPart p2endl;cout减治法求a的n次方运行时间(单位s)及结果endldoubleend3.QuadPart-start3.QuadPart/f.QuadPart p3endl;return 0;五、运行输出结果 六、调试和运行程序过程中产生的问题、采取的措施及获得的相关经验教训 合适的代码是实验能够成功进行的关键,当然前提是对问题的深刻理解,从实验结果我们不难看出,应用减治法处理问题的效率还是很高的。2