【C语言】实现n^k(递归函数)

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

代码如下:

<span style="font-size:18px;">#include<stdio.h>
int fun(int n,int k)
{
	if(k==1)
		return n;

	else
		return n*fun(n,k-1);
}
int getpower(int x,int y)
{
	if (y == 1)
		return x;
	else
		return x * getpower(x, y-1);
}
int main()
{	

	printf("%d\n",fun(2, 3));
	return 0;
}
</span>

两个函数实现的功能是一样的,但是要特别注意一定要判断指数为一的情况。

运行结果如下:

时间: 2024-11-07 05:31:33

【C语言】实现n^k(递归函数)的相关文章

C语言学习-函数和递归函数

C源程序是由函数组成的,有且只有一个主函数(main()函数). 一.函数 1.自定义函数的书写格式: 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…) { 函数体 }例如: 1 include <stdio.h> 2 void test(); 3 4 int main() { 5 test(); 6 return 0; 7 } 8 9 void test() { 10 11 printf("hello world!"); 12 13 } 2.定义函数的

【c语言】写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

//写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 #include <stdio.h> int DigitSum( int n ) { int i; int sum = 0; i = n % 10; if( n != 0 ) { n = n / 10; sum = DigitSum( n ) + i; } return sum; } int main() { printf("

用c语言实现 写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 #include<stdio.h> int main() { int DigitSum(n); int a; printf("请输入一个数字\n"); scanf("%d",&a); printf("组成它的数字之和为%d\n",DigitSum(a)); return

层次结构和二维表的关系数据存储

摘:Storing Hierarchical Data in a Database Article(翻译版本) 原文链接:http://shiningray.cn/hierarchical-data-database.html 作者:Gijs Van Tulder 翻译:ShiningRay @ NirvanaStudio 无论你要构建自己的论坛,在你的网站上发布消息还是书写自己的CMS程序,你都会遇到要在数据库中存储层次数据的情况.同时,除非你使用一种像XML的数据库,否则关系数据库中的表都不

一种理想的在关系数据库中存储树型结构数据的方法

一种理想的在关系数据库中存储树型结构数据的方法 在各种基于关系数据库的应用系统开发中,我们往往需要存储树型结构的数据,目前有很多流行的方法,如邻接列表模型(The Adjacency List Model),在此基础上也有很多人针对不同的需求做了相应的改进,但总是在某些方面存在的各种各样的缺陷.    那么理想中的树型结构应具备哪些特点呢?数据存储冗余小.直观性强:方便返回整个树型结构数据:可以很轻松的返回某一子树(方便分层加载):快整获以某节点的祖谱路径:插入.删除.移动节点效率高等等.带着这

Go 语言递归函数

Go 语言递归函数 递归,就是在运行的过程中调用自己. 语法格式如下: 1 func recursion() { 2 recursion() /* 函数调用自身 */ 3 } 4 5 func main() { 6 recursion() 7 } Go 语言支持递归.但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中. 递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等. -----------------------------------------

黑马程序员--C语言--预处理指令、枚举、Typedef、递归函数、变量作用域

一.预处理指令 1>所有的预处理指令都是以#号开头; 2>预处理指令是在代码翻译成0,1之前执行: 3>预处理指令最后没有分号: 4>预处理指令的位置可以随便写: 5>预处理指令有作用域,从编写指令的那一行开始,一直到文件结尾,可以用#undef取消宏定义的作用: 预处理指令分3种 1> 宏定义 2> 条件编译 3> 文件包含 二.宏定义 1. 宏定义命名规则: 1>大写字母 1 #define COUNT 2>k开头首字母大写 #define 

GO语言学习(二十)Go 语言递归函数

Go 语言递归函数 递归,就是在运行的过程中调用自己. 语法格式如下: func recursion() { recursion() /* 函数调用自身 */ } func main() { recursion() } Go 语言支持递归.但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中. 递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等. 阶乘 以下实例通过 Go 语言的递归函数实例阶乘: package main import "fmt"

Go语言之递归函数

Go 语言递归函数 递归,就是在运行的过程中调用自己. Go 语言支持递归.但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中. 递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等. package main import "fmt" func factorial(n uint64) uint64 { if n > 1 { return n * factorial(n-1) } return 1 } func main() { a :=

C语言 递归函数

递归函数 就是自身调用自身的函数,需要加条件来判定,否则无限调用 下面介绍一个简单的例子 1 //递归函数整理 2 long fun(int n) 3 { 4 long s; 5 if(n==1||n==2) 6 s=2; 7 else 8 s=n-fun(n-1); 9 10 return s; 11 } 12 13 int main(int argc, const char * argv[]) 14 { 15 printf("%ld",fun(6)); 16 /* 17 = 6 -