递归实现一个数的N次方

编写一个函数实现n^k,使用递归实现

#include<stdio.h>
#include<stdlib.h>

int DigitSum(n)
{
	int sum = 0;
	int tmp = 0;

	if (n)
	{

		tmp = n % 10;
		sum = tmp + +DigitSum(n / 10);

	}
	return sum;
}
int main()
{
	int num = 0;
	scanf("%d", &num);

	printf("%d", DigitSum(num));

	system("pause");
	return 0;
}
时间: 2024-12-29 17:29:30

递归实现一个数的N次方的相关文章

计算一个数的n次方

#include <iostream> #include <cmath> /// 数学函数必不可少. using namespace std; int main() { double a,x; /// a为底数,x为幂 while(cin>>a>>x) { cout<<pow(a,x)<<endl; /// 注意若求一个数的小数次方,则x一定要加小数点. } } 在定义a,x的类型时,最好定义为double型,以免发生错误.

递归--练习9--noi8758 2的幂次方表示

递归--练习9--noi8758 2的幂次方表示 一.心得 找准子问题就好 二.题目 8758:2的幂次方表示 总时间限制:  1000ms 内存限制:  65536kB 描述 任何一个正整数都可以用2的幂次方表示.例如: 137=27+23+20 同时约定方次用括号来表示,即ab可表示为a(b).由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7=22+2+20(21用2表示) 3=2+20 所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0)

分治法实现一个数的n次方

算法导论上说分治法解决一个数的n次方,它的复杂度为logn;而用连乘的复度n; #include<iostream> using namespace std; int recursion(int x,int n){ if(n==1){ return x; }else { if(n%2==0){//n为偶数 int r=recursion(x,n/2); return r*r; }else{//n为奇数 int r=recursion(x,(n-1)/2); return r*r*x; } }

【日常学习】【搜索/递归】codevs2802 二的幂次方题解

转载请注明出处 [ametake版权全部]http://blog.csdn.net/ametake欢迎来看 题目描写叙述 Description 不论什么一个正整数都能够用2的幂次方表示. 比如:137=2^7+2^3+2^0 同一时候约定次方用括号来表示,即a^b可表示为a(b) 由此可知,137可表示为:2(7)+2(3)+2(0) 进一步:7=2^2+2+2^0 (2^1用2表示) 3=2+2^0 所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如:1

递归好题,NOIP1998幂次方

先占坑提醒自己写这篇文章.回家再补,机房时间宝贵. 洛谷1010 幂次方 本题地址:http://www.luogu.org/problem/show?pid=1010 题目描述 任何一个正整数都可以用2的幂次方表示.例如         137=2^7+2^3+2^0         同时约定方次用括号来表示,即a^b 可表示为a(b). 由此可知,137可表示为:         2(7)+2(3)+2(0) 进一步:7= 2^2+2+2^0   (2^1用2表示)         3=2+

自己实现一个数的整数次方 11

注意输入的判断,多写几个if语句判断是否满足输入数据的条件 ? ? 另外exp为负的时候,输入的base变为1.0/base而不是1/base ? ? 所以返回值要设置为double,base也要设为double ? ? 另外要自己定义equal,而不能用==,要去判断两个数的差的绝对值是否在一定范围内 ? ? package myPower11; ? ? public class MyPower11 { static boolean equal(double num1,double num2)

编程练习:求某个数的n次方,返回其个位和十位

1 #!/usr/bin/env python 2 3 def pow1(n,m): 4 if m==0: return 1 5 if m==-1: return (1/n) 6 if m & 1 != 0: 7 return int(str(n * pow1(n, m-1))[-2:]) 8 else: 9 return int(str(pow1(n*n, m>>1))[-2:]) 10 11 if __name__ == "__main__": 12 print

递归判断一个数是否递增

#include<iostream>using namespace std;//是否单调递增bool isdan(int a[],int lev,int len){    if(len==1) return true;    if(lev==len-1)    {        return true;        }    else    { if(a[lev]>a[lev+1]) return false;        else  return  isdan(a,lev+1,le

快速判断一个数是否是4的幂次方,若是,并判断出来是多少次方!

将4的幂次方写成2进制形式后,很容易发现有个特点,2进制中只有1个1(1在奇数位置),并且后面跟了偶数个0:因此问题可以转化为判断1后面是否跟了偶数个0就可以了. 4的整数次幂的二进制可以写为2^(2*n),即也可以写成2的幂次方,当然就满足2的幂次方的条件,即num&(num-1)==0. 思路:首先用条件num&(num-1)==0来判断是否为2的幂次方,若不满足,则不是.若满足,再用条件num&0x5555 5555 来判断,若为真,则这个整数是4 的幂次方.否则不是. #i