当前位置:   article > 正文

程序基本算法习题解析 用分治法求a^n。_分治法给定实数a和自然数n,求a的n次方python

分治法给定实数a和自然数n,求a的n次方python

题目:

如果n为偶数,则a^{^{n}}=a^{^{n/2}}\times a^{^{n/2}};如果n为奇数,则a^{^{n}}=a^{^{2m+1}}=a^{^{m}}\times a^{^{m}}\times a,其中m为偶数。

思路不难,直接附上代码:

  1. // Chapter7_7.cpp : Defines the entry point for the application.
  2. // 用分治法求a^n。
  3. #include "stdafx.h"
  4. #include<iostream>
  5. using namespace std;
  6. int funPower(int a,int n) //a^n
  7. {
  8. if(n == 1)
  9. return a;
  10. else
  11. {
  12. //如果n为偶数
  13. if(n%2 == 0)
  14. return funPower(a,n/2)*funPower(a,n/2);
  15. //如果n为奇数
  16. else
  17. return funPower(a,n/2)*funPower(a,n/2+1);
  18. }
  19. }
  20. int main()
  21. {
  22. int result,a,n;
  23. cout << "input a,n: ";
  24. cin >> a >> n;
  25. result = funPower(a,n);
  26. cout << a << "的" << n << "次方为:" << result << endl;
  27. system("pause");
  28. return 0;
  29. }

运行结果为:

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/82032
推荐阅读
相关标签
  

闽ICP备14008679号