用二分法计算a的n次幂<算法分析>
2024-09-25 18:51:51
实验目的:
1、复习java编程;
2、掌握二分法的基本原理;
3、掌握使用java程序进行二分法计算a的n次幂。
实验步骤:
1、由用户输入a及n(均为整数);
2、利用二分法完成计算,并将中间结果打印出来。
package erfencimi;
import java.util.Scanner;
public class Power {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//输入a和n数值
System.out.print("请输入 a 的值:");
int a = scanner.nextInt();
System.out.print("请输入 n 的值:");
int n = scanner.nextInt();
int c=0;
System.out.println("a = " + a + "\t" + "n = " + n);
//打印输出二分过程
for(int b=1;b<=n;n=n/2)
{
System.out.println(a + "的" + n + "次方为(第"+c+"次二分):" + function(a, n));
c++;
}
c=c-1;
//二分次数总计
System.out.println("总共进行了" + c + "次二分!");
} //求二分次幂函数
private static long function(int a, int n) {
if(n == 1) { //指数是1时直接返回数字a
return a;
} else {
if(n % 2 == 0) { //如果是偶数次幂直接将指数进行二分
return (int)Math.pow(function(a, n/2), 2);
} else { //如果是奇数次幂将指数减一再进行二分
return (int)Math.pow(function(a, (n-1)/2), 2) * a;
}
}
}
}
运行结果如下:
最新文章
- ubuntu下的软件安装
- 【转】XCode快捷键
- Length 和 Width在矩形中的定义.
- Linux fstab 参数详解
- 不同浏览器创建 ajax XMLHTTPRequest对象的方法及兼容性问题总结
- ES中const
- 安装pcntl以实现php多进程
- Asp.Net Core 轻松学-多线程之Task(补充)
- Oracle数据库升级注意事项
- IntelliJ IDEA 导入新项目
- Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板
- Python- 解决PIP下载安装速度慢
- 数字转换大写人民币的delphi实现
- noip2014生活大爆炸版石头剪刀布
- Atlas:ERROR 1105 (HY000): #07000Proxy Warning - IP Forbidden
- 用Fiddler抓到的报文Content-Type: application/x-www-form-urlencoded,怎样解析?
- 新买的mac笔记本,发现vi编辑器没有颜色的解决方案
- html5电池状态相关API
- python中执行shell命令
- Eclipse开发Java代码,如何添加智能提示