C语言实现-->>一个数的n次幂--递归

问题描述:

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

代码实现:

#include <stdio.h>
int number_power(const int n,int k)
{ 
 static int num=1;
 num=num*n;
 if(k>1)
 {
  k--;
  number_power(n,k);
 }
 return num;
 
}
int main()
{
 int n=0;
 int k=0;
 int ret=0;
 scanf("%d %d",&n,&k);
 ret=number_power(n,k);
 printf("%d\n",ret);
 return 0;
}

结果是:

时间: 2024-10-29 19:07:42

C语言实现-->>一个数的n次幂--递归的相关文章

【转载】C语言 构建参数个数不固定函数

深入浅出可变参数函数的使用技巧本文主要介绍可变参数的函数使用,然后分析它的原理,程序员自己如何对它们实现和封装,最后是可能会出现的问题和避免措施. VA函数(variable argument function),参数个数可变函数,又称可变参数函数.C/C++编程中,系统提供给编程人员的va函数很少.*printf()/*scanf()系列函数,用于输入输出时格式化字符串:exec*()系列函数,用于在程序中执行外部文件(main(int argc,char*argv[]算不算呢,与其说main

用python语言来判断一个数是否是水仙花数?

#用python语言来判断一个数是否是水仙花数? #水仙花数: # 1) 一个三位正整数 ( 即取值区间 [100,1000) ) # 2) 个位数字的立方+十位数字的立方+百位数字的立方=它本身  (即数字 abc = a**3 + b**3 + c**3) 代码: for a in range(1,10):    #定义百位数取值区间 (1,9)     for b in range(10):    #定义十位数取值区间 (0,9)         for c in range(10):  

如何判断一个数是2的幂

如何判断一个数是2的幂,主要是要找出2的幂次方的数的特点.我们知道,1个数乘以2就是将该数左移1位,而2的0次幂为1, 所以2的n次幂(就是2的0次幂n次乘以2)就是将1左移n位, 这样我们知道如果一个数n是2的幂,则其只有首位为1,其后若干个0,必然有n & (n - 1)为0.(在求1个数的二进制表示中1的个数的时候说过,n&(n-1)去掉n的最后一个1).因此,判断一个数n是否为2的幂,只需要判断n&(n-1)是否为0即可. bool powerof2(unsigned in

C语言求两个数中最大公约数

在C语言中如何求两个数的最大公约数呢?下面用三种方法进行求解. 方法一:穷举法. 先比较两个数的大小,然后找出较小数t,最后判断t为何值时两个数都能整除,此方法效率较低. 代码如下: #include<stdio.h> int main() {      int num1,num2,temp,i;      scanf("%d%d",&num1,&num2);      if(num1>num2)      {            temp=num1

C语言--求两个数的最大公约数

问题: 求两个数的最大公约数 #include<stdio.h> #include<math.h>  main() { int a,b,c,i,j; printf("请输入三个数(数以逗号隔开):\n"); int arr[3]; int t; scanf_s("%d,%d,%d", &a,&b,&c); arr[0] = a;  arr[1] = b;  arr[2] = c; for (j = 0; j < 

c语言求两个数的最大公约数和最小公倍数

#include <stdio.h> int main() { // 两个数的最大公约数求法:最大公约数是这两个数之间公共最大的约数,我们可以先找到这两个数的比较小的数: int num1, num2, gys, gbs; scanf("%d,%d", &num1, &num2); int ji = num2*num1; if (num1>num2) { // 找到两个数较小的数 int temp; temp = num1; num1 = num2;

c语言判断一个数是不是素数

#include <stdio.h> #include <math.h> int main() { // 输入一个整数数判断是不是素数 // 方法是用这个数去除2到根号num这些数如果为0则不是素数 int m,i,k; printf("请输入一个整数:"); scanf("%d",&m); k=(int)sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>k) printf

C语言判断一个数能否被3和5整除

#include <stdio.h> /* 判断一个数能不能同时被3和5整除 --------soulsjie 20170525----- */ void main(){ int input; printf("请输入一个数:"); scanf("%d",&input); if(input%3==0 && input%5==0) { printf("%d能同时被3和5整除!\n",input); } else{p

c语言求两个数的最大公因数(穷举法,欧几里得算法,递归)

/*主函数Gcd为求公因数的函数输入为负时返回-1*/ int main(){   int a, b;  printf("Input a,b:");  scanf("%d,%d",&a,&b);  if (a < 0 || b < 0)   printf("Input number should be positive!\n");  else  printf("Greatest Common Divisor