博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝桥学院2019算法题2.20
阅读量:6695 次
发布时间:2019-06-25

本文共 1129 字,大约阅读时间需要 3 分钟。

题5:设计一个高效的求a的n次幂的算法

算法分析:

1、可以用for循环实现 a*a*a*a*...

2、可以用递归实现 res*pow1(a,n-ex)

1 package recursion; 2  3 /** 4  * @author zsh 5  * @company wlgzs 6  * @create 2019-02-18 16:30 7  * @Describe 设计一个高效的求a的n次幂的算法 8  */ 9 public class Main8 {10 11     /**12      * 循环法求a的n次幂,复杂度O(n)13      * @param a14      * @param n15      * @return 结果16      */17     static int pow0(int a,int n){18         int res = 1;19         for (int i = 0; i < n; i++) {20             res = res*a;21         }22         return res;23     }24 25     /**26      * 优化后求a的n次幂27      * @param a28      * @param n29      * @return 结果30      */31     static int pow1(int a,int n){32         if (n == 0){33             return 1;34         }35         int res = a;36         //指数37         int ex = 1;38         while ( 2*ex <= n){39             res = res*res;40             ex = ex*2;41         }42         //差n-ex次方没有乘到结果上去43         return res*pow1(a,n-ex);44     }45 46     public static void main(String[] args) {47         System.out.println(pow0(2,15));48         System.out.println(pow1(2,15));49     }50 }

 

转载于:https://www.cnblogs.com/zsh-blogs/p/10396467.html

你可能感兴趣的文章
我的友情链接
查看>>
ASA防火墙的应用
查看>>
linux中telnet 带外管理服务器的设置
查看>>
用户登录认证
查看>>
Web版RSS阅读器(一)——dom4j读取xml(opml)文件
查看>>
百度UEditor编辑器ueditor.setContent总是报错
查看>>
属性化字符串问题集
查看>>
Windows 2012 下如何强制同步 AD SYSVOL
查看>>
Java AtomicInteger的用法
查看>>
利用公有云平台构建网站项目总结
查看>>
php 与 C# 之间的DES加解密
查看>>
NetApp DataONTAP 集群模式 学习笔记2
查看>>
网络营销的优势
查看>>
允许java运行不安全或不可信的应用程序
查看>>
Java为Hyperledger Fabric(超级账本)开发区块链链代码智能合约之环境部署
查看>>
思科三层网络设计公式
查看>>
Groovy基本类型与运算符
查看>>
rabbitmq java.util.concurrent.TimeoutException
查看>>
IPsec***
查看>>
sql语句优化的十二条建议
查看>>