1. 程式人生 > >【c語言】遞迴實現n的k次方

【c語言】遞迴實現n的k次方

問題描述:

如題。

分析:

1.n的k次=n*n*n*……*n(k個n),用遞迴的思想來講,就等於2.n的k次=n*(n的(k-1)次方)

程式碼如下:

#include<stdio.h>

int cifang(int n,int k)
{
	
	if(k==0)
		return 1;
	
	else if(k==1)
		return n;

	else
		return n*cifang(n,k-1);
}


int main()
{
	int x,y;//y表示多少次方
	scanf("%d %d",&x,&y);
	printf("%d\n",cifang(x,y));
	return 0;
}
結果如下:

相關推薦

c語言實現n的k次方

問題描述: 如題。 分析: 1.n的k次=n*n*n*……*n(k個n),用遞迴的思想來講,就等於2.n的k次=n*(n的(k-1)次方) 程式碼如下: #include<stdi

C語言演算法的學習

一、初識遞迴 程式呼叫自身的程式設計技巧稱為遞迴( recursion)。 一個過程或函式在其定義或說明中有直接或間接呼叫自身的一種方法,它通常把一個大型複雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞迴策略只需少量的程式就可描述出解題過程所需要的多次重複計算,大大地減少

c語言和非的相互轉換

前面已經介紹過遞迴的相關概念這裡不多介紹,直接介紹轉換方法: 一、遞迴轉非遞迴的兩種方法 1、一般根據是否需要回溯可以把遞迴分為簡單遞迴和複雜遞迴,簡單遞迴就是根據遞迴式來找出遞推公式(這也就引申出分治思想和動態規劃) 2、複雜遞迴一般就是模擬系統處理遞迴

C語言實現n^k(不考慮k<0的情況)

#include<stdio.h> #include<stdlib.h> int n_power_k(int n,int k){ if (k == 0) { return 1; } return n*n_power_k(n,k-1)

C語言: 用實現對字串的逆置

#include <stdio.h> #include <windows.h> /* 用遞迴實現對字串的逆置 */ void Reverse(char* string) { int len = strlen(string); if (strlen(string)

hanoi塔的c語言函式實現

#include <stdio.h> void hanoi(int n,char a,char b,char c)//定義函式  {if(n==1) //如果只有一個,那麼只需要從a杆移至c杆; {printf("%c-->%c\n",a,c);}else //如果有多個 {hanoi(n-

C語言編寫函式實現庫函式atoi,把字串轉換成整形

//編寫函式實現庫函式atoi,把字串轉換成整形 #include <stdio.h> #include <string.h> int my_atoi(const char *

C語言編寫函式實現:100-200素數的輸出

    這裡面,先要理解素數如何求得,可用自己除以2到自己的前一位,根據餘數情況判斷是素數還是合數。優化:(1)從101開始,每次自加2,這樣提高效率一倍。(2)一直除以自己的平方根也可。#include<stdio.h> #include<math.h&g

C語言簡單實現字串逆序輸出

題目內容的 “注意” 已經側面規定了要用遞迴來實現: 輸入是一個可能含有空格的串說明要用gets來讀入字串,如果利用scanf的話是無法讀入一段含有空格的串。 下面先上一般方法: #include "stdio.h" #include "string.h" char *

C語言求數值的正數次方

//數值的正數次方 //實現函式double power(double base, int exponent),求base的exponent次方,不得使用庫函式,不需要考慮大數問題。 //注意:考慮非

C語言函式是實現函式功能的幾個例子

1.問題描述:寫一個遞迴函式DigitSum(n),輸入一個非負整數,返回組成它的數字之和。例如,呼叫DigitSum(1729),則應該返回1+7+2+9,它的和是19。 思路:這個題比較類似於求拆分整數,一個一個輸出。這個題多得一步是在拆分後,將這些數字加

C語言求1-N的和(法)

遞迴公式: 條件:f(1) = 1 遞迴條件:f(n-1) + n 為了手機顯示方便(配圖): 程式碼為: //求1-N的和 #include "stdio.h" int f(int n) { //定義函式f 出口為n等於1,否則將n與f(n-1)相

備戰藍橋杯C語言排隊購票問題

問題描述:         售票工作正在進行,每張票為50元,現在有m+n人排隊等待購票,其中有m人手持50元,n人手持100元,假設售票處不設找零,那麼若想使售票處不會出現找不開零錢的局面,請你幫忙設計不同的排隊方案。特別說明的是,拿同樣面值的人對換位置為同一種方案。演算法

C語言斐波那契數列的兩種演算法(迴圈,

#include<stdio.h> int Fabio(int n) //迴圈 { int i; int f1 = 1; int f2 = 1; int f3 = 1; for(i = 2;i<n;i++) { f3 = f1 + f

C語言簡單的瞭解(求斐波那契,n的階乘,字串長度,把一個整型(無符號),轉化為字元型並打印出來)

簡單瞭解遞迴1.什麼是遞迴???程式設計程式呼叫自身的程式設計技巧稱為遞迴( recursion)遞迴做為一種演算法在程式設計語言中廣泛應用。 一個過程或函式在其定義或說明中有直接 或間接呼叫自身的一種方法,它通常把一個大型複雜的問題層層轉化為一個與原問題相似的 規模較小的問

C語言二分查詢演算法

對有序的陣列使用二分查詢,可提高效率二分查詢,下標由0開始,遞迴結束條件,data[p] == key || start >= end int BinaryS(int *data,int start,int end,int key) { int re

C語言模擬實現atoi

題目:請程式設計寫程式實現字串到整數的轉換,例如輸出字串“12345”,輸出整數12345. 分析:不僅要考慮給的是字元字串,還要考慮空白字元,正負號,空字串,以及越界訪問問題 #include <stdio.h> #include <stdlib.h> #include

C語言實現一個計算器(兩種方式)

1.使用switch…case…語句實現 #define _CRT_SECURE_NO_DEPRECATE 1 #include <stdio.h> #include <stdlib.h> int add(int x, int y) {   &nb

C語言實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)的置0或者置1操作,並保持其他位不變

請編碼實現以下功能的函式 功能:實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)的置0或者置1操作,並保持其他位不變。 函式原型:void bit_set(unsigned char *p_data,unsigned char position,int flag)

C語言實現小遊戲掃雷

用C語言實現掃雷小遊戲,一共有三部分的程式碼 game.h #ifndef __GAME_H_ #define __GAME_H_ #include <stdio.h> #include <stdlib.h> #include <time.h> #def