`
shenkun_918
  • 浏览: 27458 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

递归实现 :x的y次方

 
阅读更多

     计算机无法实现x的y次方,由

y =(x*x) (y/2)

来实现,依据此法,利用递归实现 x的y次方,在y为奇数的时候,提出一个x出来相乘,如下:

public class Power {
	
	static int xNum;
	public static void main(String[] args) throws IOException {
		
		int x,y;
		int count = 0;
		x = insert();
		y = insert();
		xNum = x;
		power(x,y,count);
	}

	private static void power(int x, int y, int count) {
		
		System.out.println("x值为:"+x+" y值为:"+y);
		if(y==1)
		{	
			if(count>0){
				for(int i=1;i<=count;i++){
					x = x*xNum;
				}
			}
			System.out.println("所求值为:"+x);
		}
		if(y>1)
		{ 
			
			//y为偶数的时候
			if(y%2==0)
			{	System.out.println(">>>>");
				power(x*x,y/2,count);
			}
			//y为奇数的时候
			if(y%2==1)
			{System.out.println("<<<<");
				power(x*x,(y-1)/2,count+1);
			}
		}
	}

	private static int insert() throws IOException {
		InputStreamReader in = new InputStreamReader(System.in);
		BufferedReader buffer = new BufferedReader(in);
		String s = buffer.readLine();
		return Integer.parseInt(s);
	}

}

分享到:
评论

相关推荐

    编求x的y次方的递归函数.cbp

    编求x的y次方的递归函数.cbp

    大数相乘,x^y的实现

    在x的y次方算法中,我们使用了一个循环来实现递归。在每次循环中,我们将当前的结果乘以x,直到达到y次方为止。然后,我们将结果存储在一个新的字符数组中。 在本文中,我们还讨论了大数相乘和x的y次方算法的优缺点...

    能实现x^y和n!的计算器 Java

    在这个“能实现x^y和n!”的计算器项目中,我们看到一个Java程序,它不仅具备基础的四则运算功能,还特别实现了指数(x^y)计算和阶乘(n!)计算,这些都是数学运算中的重要组成部分。 指数运算x^y涉及到的是幂次方的...

    汉诺塔非递归实现

    `Pow()`函数用于计算`x`的`y`次方,这里用于确定移动次数,因为对于`n`个圆盘,需要移动`2^n - 1`次。 `Creat()`函数初始化了柱子的状态,根据圆盘数`n`的奇偶性设置初始圆盘布局。 `Hannuota()`函数是核心的移动...

    编程求x的n次方-用C语言程序设计:求x的n次方的函数 .pdf

    同样,如果`x`和`y`都为0,或`x`为0且`y`为负数,也会根据库的实现产生不同的错误,如“domain error”或“pole error”。 - **精度和溢出**:由于`pow()`返回的是`double`类型,可能存在精度损失。此外,当计算的...

    淮海工学院 计算机工程学院 实验报告 递归程序设计

    - **后置谓词**(R):输出的结果`z`等于基数`x`的`y`次方,即`z = x^y`。 **2. 条件语句的推导策略** 对于条件语句,可以根据问题的需求设计相应的分支逻辑。例如,当需要根据某个条件选择不同的执行路径时,可以...

    易语言求x的y次幂源码.7z

    函数`pow(x, y)`是很多编程语言中内置的幂运算函数,用于计算`x`的`y`次方。在易语言中,虽然可能没有直接提供这样的内置函数,但开发者可以通过循环或递归等方法实现类似的功能。 易语言的基本结构包括常量、变量...

    汉诺塔的算法,有递归算法

    `Pow`函数是一个简单的幂运算函数,用于计算`x`的`y`次方,这里用于计算移动圆盘的总次数,即`2^n - 1`。 在`main`函数中,用户输入圆盘的数量,程序创建相应的结构数组并初始化,然后调用`Hannuota`函数开始移动...

    Java Methods-Recursion Revisited.ppt

    第二个例子展示了求幂的递归实现: ```java public double pow(double x, int n) { if (n == 0) { return 1.0; } double y = pow(x, n / 2); y *= y; if (n % 2 != 0) { y *= x; } return y; } ``` 此...

    第三届全国软件专业人才设计与创业大赛”

    - **题目描述**: 编程实现x的y次方的最后三位数。 - **输入**: 基数x和指数y。 - **输出**: x的y次方的最后三位数。 - **关键知识点**: - 运算优先级: 在进行乘法运算之前,先进行取模操作。 - 循环结构: 使用循环...

    python一行实现代码

    print('\n'.join([''.join([('Love'[(x-y)%len('Love')] if ((x*0.05)**2 + (y*0.1)**2 - 1)**3 - (x*0.05)**2 * (y*0.1)**3 ) for x in range(-30, 30)]) for y in range(30, -30, -1)])) ``` **知识点解析:** - ...

    C语言程序设计.doc

    22. 递归函数:用递归方法计算x的n次方。 23. 阶乘计算:输出1到5的阶乘,可以使用循环或递归。 24. 时间转换:输入秒数,转换为“时:分:秒”格式。 25. 数列求和:输入x和n,计算累加和。 26. 字符统计:统计输入...

    Python练习题(2).docx

    28. pow(x, y)含义:x的y次方。 29. 递归程序特点:递归程序不一定都要有一个明确的基线条件。 这些知识点涵盖了Python的基础语法、编程模式、输入输出、变量、数据类型、控制结构、函数、注释以及标准库的使用,...

    入门_30个常用python实现_By CYR_DOC/WORD可编辑版本

    实现计算x的n次方,可以通过循环或递归来实现。 ```python def power(x, n): result = 1 for _ in range(n): result *= x return result ``` #### 计算a\*a+b\*b+c\*c+…… 可以定义一个函数来计算一个列表中...

    《Python 语言程序设计》b卷试卷及答案.pdf

    `f = lambda x,y: x**y`定义了一个接受两个参数x和y,返回x的y次方的函数。调用`f(2,3)`得到8。 9. 递归函数:`add(n)`是一个递归函数,计算1到n的和。`add(4)`的计算过程为`add(4) = add(3) + 4 = add(2) + 3 + 4 ...

    国内知名软件公司的面试题

    部分内容还涉及到一个幂次方问题:“N1000N4实现一个算法,目的是为N的平方根进行不同精度的估计:C++一种常见的做法是写代码实现一个函数来解决这个问题。” #### 详解: 1. **问题描述**:给定一个正整数N,求N的...

    汉诺塔游戏代码

    long Pow(int x, int y) { // 计算 x 的 y 次方 long sum = 1; for (int i = 0; i &lt; y; i++) sum *= x; return sum; } void Creat(st ta[], int n) { // 初始化柱子的状态 ta[0].name = 'A'; ta[0].top = n -...

    数据结构课程设计 数制转换问题

    Y函数结束N初始化数组元素位置 i=0;x&gt;0?Yx 除以 n ,余数存入数组,数组下标 i 后移,商赋值给 x函数结束N 递归的算法递归过程中不需要另外的存储取到的余数,只需要在递归返回时输出相应的结果就行。 主要变量#...

    python小课30个常用实现借鉴.pdf

    2. **计算 x 的 n 次方**:Python提供了`pow(x, y)`函数用于计算x的y次方,但也可以通过循环或递归方式实现。 3. **平方和计算**:这个实现可能涉及到遍历一个序列,计算每个元素的平方并累加,用于求解一系列数的...

    2017高中《算法与程序设计》学业水平考试知识点汇总.doc

    - 示例:`y = (x * x + 1) / (Abs(x) + 3)` #### 7. 赋值语句: - 用于将一个值赋给变量或对象的属性。 - 示例:`a = 3` #### 8. 选择语句与循环语句: - **选择语句**:根据条件选择不同的路径执行。 - **循环...

Global site tag (gtag.js) - Google Analytics