实验目的:

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;

}

}

}

}

运行结果如下:

用java二分法计算a的n次幂_用二分法计算a的n次幂算法分析相关推荐

  1. html点击按钮计算两个输入框的和_小程序计算报价功能介绍

    一.使用场景 用户可在管理后台设置计算值和运算公式,访客输入对应计算值,即可实现自动计算出结果,并提供相关的咨询入口,适用于装修.建材.房贷.车险等行业的报价行为. 二.功能版本限制 小程序至尊版可开 ...

  2. mysql计算多少天后的日期_数据库 - mysql 计算某个时间,多少天后,多少个月后时间戳...

    数据库设计(一): 数据库设计步骤:  需求分析-------->  逻辑设计 ------------> 物理设计----------->维护优化. [1]需求分析:分析需要存储的 ...

  3. python计算圆的面积的流程图_使用python计算圆的面积

    # -*- coding: utf-8 -*-import mathwhile True: print '''1.圆的面积 ''' xuhao=raw_input('请输入您要查询的序号:') if ...

  4. Java 递归解决 quot;仅仅能两数相乘的计算器计算x^yquot; 问题

    Java 递归解决 "仅仅能两数相乘的计算器计算x^y" 问题 /*** 求一个数的乘方* 求x^y,y是一个正整数. 设计算器仅仅能计算两数相乘,不能一次计算n个数相乘. * 知 ...

  5. Java黑皮书课后题第3章:*3.13(金融应用:计算税款)程序清单3-5给出了计算单身登记人税款的源代码。将程序清单3-5补充完整,从而计算所有登记的婚姻状态的税款

    *3.13(金融应用:计算税款)程序清单3-5给出了计算单身登记人税款的源代码.将程序清单3-5补充完整,从而计算所有登记的婚姻状态的税款 题目 题目描述 程序清单3-5 代码 题目 题目描述 *3. ...

  6. Java黑皮书课后题第1章:1.5(计算表达式)编写程序,显示以下式子的结果

    Java黑皮书课后题第1章:1.5(计算表达式) 题目 题目描述 题目槽点 代码 代码块 代码评析与易错点 方法选用 易错点 非常不舒服的运算符前后空格(对新手来讲) 修改日志 题目 题目描述 编写程 ...

  7. java中使用几率_Java中使用蒙特卡洛算法计算德州扑克成牌概率(二)- 计算牌面分值...

    德州扑克中比较重要的一个算法就是计算牌面的得分,不仅仅关乎概率计算的结果,同时也需要很高的性能.蒙特卡洛算法计算的次数越多结果越准确,因此算法的性能至关重要.下面是一个高性能的牌面java计算算法. ...

  8. Java 练习:编写 Java 程序,输入年份和月份,使用 switch 结构计算对应月份的天数。月份为 1、3、5、7、8、10、12 时,天数为 31 天。月份为 4、6、9、11 时,天数为 3

    文章目录 一.练习题目 二.使用 switch 语句实现代码 三.将代码改写回 if else 的选择结构 一.练习题目 编写 Java 程序,输入年份和月份,使用 switch 结构计算对应月份的天 ...

  9. 经典编程习题,用Java实现:矩阵转置、最大公约数和最小公倍数、计算自然对数的底e的值、输出1000以内的回文素数、判断两个年份之间的平闰年情况。

    经典编程习题,用Java实现 1.矩阵转置 2.最大公约数和最小公倍数 3.计算自然对数的底e的值 4.输出1000以内的回文素数 5.判断两个年份之间的平闰年情况 1.矩阵转置 public cla ...

最新文章

  1. ORM操作models一对多、多对多关系
  2. 皮一皮:落伍了落伍了
  3. mysql查看防火墙状态命令_Linux设置允许指定端口通过防火墙centos7
  4. 老板问我桌面演练(TTX)是什么,我直接给他发了定义、示例和目标
  5. gomod和govendor的简单理解
  6. debian 文件夹中文件大小_debian 记录用到的命令 文件夹 目录等操作
  7. 用流收集数据Collectors的用法介绍分组groupingBy、分区partitioningBy(一)
  8. javaSE各阶段练习题--初识Java章节
  9. java 星期几、得周一、得周日、上周、下周、相差、日期工具类
  10. 十次方项目开发系列【3】:基于MyBatis Plus实现条件查询和分页
  11. 基于辅助功能的镜像劫持攻击原理
  12. win11中利用IIS10搭建asp网站
  13. python爬虫抖音视频代码_python爬虫 抖音短视频解析下载
  14. TMS320F2837x开发例程使用手册(3)
  15. Centos7之清理/var/tmp目录下内容
  16. hacker 入门指南
  17. mysql 测试数据库employees导入
  18. Unity UI 框架
  19. 自动切换输入法--Mac高效切换输入法工具
  20. emby,jellyfin,kodi系列

热门文章

  1. exe文件解包_如何获取别人微信小程序的源文件?
  2. 今晚直播丨Oracle数据库之Object的Access方法和结合方法
  3. Oracle 20c 新特性:SQL 宏支持(SQL Macro)Scalar 和 Table 模式
  4. 故障诊断:12cR2 Flex ASM 环境中节点启动失败的诊断和分析
  5. 排序归并连接Merge Sort Join
  6. COG云原生优化遥感影像,瓦片切分的应用实践
  7. 一次事故,我对MySQL时间戳存char(10)还是int(10)有了全新的认识
  8. 【华为云技术分享】序列特征的处理方法之一:基于注意力机制方法
  9. 红橙Darren视频笔记 反射注解泛型简介
  10. C++学习笔记系列(一)