实验目的:
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;
}
}
}
}

运行结果如下:

最新文章

  1. ubuntu下的软件安装
  2. 【转】XCode快捷键
  3. Length 和 Width在矩形中的定义.
  4. Linux fstab 参数详解
  5. 不同浏览器创建 ajax XMLHTTPRequest对象的方法及兼容性问题总结
  6. ES中const
  7. 安装pcntl以实现php多进程
  8. Asp.Net Core 轻松学-多线程之Task(补充)
  9. Oracle数据库升级注意事项
  10. IntelliJ IDEA 导入新项目
  11. Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板
  12. Python- 解决PIP下载安装速度慢
  13. 数字转换大写人民币的delphi实现
  14. noip2014生活大爆炸版石头剪刀布
  15. Atlas:ERROR 1105 (HY000): #07000Proxy Warning - IP Forbidden
  16. 用Fiddler抓到的报文Content-Type: application/x-www-form-urlencoded,怎样解析?
  17. 新买的mac笔记本,发现vi编辑器没有颜色的解决方案
  18. html5电池状态相关API
  19. python中执行shell命令
  20. Eclipse开发Java代码,如何添加智能提示

热门文章

  1. Java键盘输入的方法
  2. Sequence POJ - 2442
  3. Android网络状态监控
  4. ASP.NET中图片验证码与js获取验证码的值
  5. 微信小程序组件解读和分析:十、input输入框
  6. iOS Programming State Restoration 状态存储
  7. [Windows Server 2012] MySQL移机方法
  8. thinkphp5 404 file_put_contents 无法打开流:权限被拒绝
  9. 浮动qq客服备份代码
  10. bash - GNU Bourne-Again SHell