递归实现 n的k次方
2016-06-05 10:12
246 查看
编写一个函数实现n^k,使用递归实现
使用尾递归的方法,当传入的参数k等于0的时候返回num;
参数不为0是返回num*num(每使用一次递归调用一次函数k都要减去1)
递归必须要有限定条件,否则递归会无限制的进行下去,程序会出现溢出的崩溃问题#include<stdio.h>
#include<stdlib.h>
int power(int num, int k)
{
k--;
if (k == 0)
return num;
else
return num*power(num, k);
}
int main()
{
int n = 0;
int k = 0;
scanf("%d%d", &n, &k);
printf("%d\n", power(n, k));
system("pause");
return 0;
}
使用尾递归的方法,当传入的参数k等于0的时候返回num;
参数不为0是返回num*num(每使用一次递归调用一次函数k都要减去1)
递归必须要有限定条件,否则递归会无限制的进行下去,程序会出现溢出的崩溃问题#include<stdio.h>
#include<stdlib.h>
int power(int num, int k)
{
k--;
if (k == 0)
return num;
else
return num*power(num, k);
}
int main()
{
int n = 0;
int k = 0;
scanf("%d%d", &n, &k);
printf("%d\n", power(n, k));
system("pause");
return 0;
}
相关文章推荐
- 冒泡排序
- 参数传递 可变长参数函数
- 如何让网页大小自适应的JS代码
- 递归实现 参数字符串中的字符反向排列
- __FILE__ __DATE__ __TIME__ __LINE__
- 宏、函数、宏和函数的区别
- assert用法
- C++ Assert()断言机制原理以及使用
- 折半查找(二分查找)
- 位运算小结(按位与、按位或、按位异或、取反、左移、右移)
- C和C++语言中基本的数据类型
- C语言 实现一个函数,判断一个数是不是素数
- C语言 实现一个函数判断year是不是润年
- C语言 使用函数实现两个数的交换
- 创建一个数组, 实现数组初始化、数组清空以及数组元素的逆置
- Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能
- C语言输出数组的三种方法
- 简述MAC地址与IP地址的关系
- C语言 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?打印出来?
- C语言 模拟三次密码输入