最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言如何實(shí)現(xiàn)一些算法或者函數(shù)你知道嗎

 更新時(shí)間:2022年03月01日 15:31:44   作者:cy?Hunter  
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)一些算法或者函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1.遞歸二分搜索

#include<bits/stdc++.h>
using namespace std;
int a[100];
int pos = -1;

void binarysearch(int l, int r, int x){
	if(l > r)return;
	else{
		int mid = (l+r)/2;
		if(x == a[mid]) {
			pos = mid;
			return;
		}
		if(x < a[mid]) return binarysearch(l, mid-1, x);
		else return binarysearch(mid+1, r, x);
	}
}

int main(){
	int n;
	cin>>n; //輸入元素個(gè)數(shù) 
	for(int i=0; i<n; i++)cin>>a[i];
	sort(a, a+n);
	binarysearch(0, n-1, 5);//二分搜索 
	cout<<pos;//輸出找到的位置下標(biāo) 
	return 0;
} 

結(jié)果示例

在這里插入圖片描述

2.遞歸歸并排序

C語言遞歸實(shí)現(xiàn)歸并排序

3.Ackerman函數(shù)

#include<bits/stdc++.h>
using namespace std;
long Ackerman(long n, long m){
	if(n >= 0 && m >= 0){
		if(n == 1 && m == 0)return 2;
		if(n == 0 && m >= 0)return 1;
		if(n >= 2 && m == 0)return n+2;
		if(n >= 1 && m >= 1)return Ackerman(Ackerman(n-1, m), m-1);
	}
} 

int main(){
	long n, m;
	cin>>n>>m;
	cout<<Ackerman(n, m);
	return 0;
} 

結(jié)果示例

在這里插入圖片描述

4.Fibonacci數(shù)列

#include<bits/stdc++.h>
using namespace std;
int fibonacci(int n){
	if(n == 1)return 1;
	else if(n == 2)return 1;
	else return fibonacci(n-1)+fibonacci(n-2);
	
}
int main(){
	int n;
	cin>>n;//返回斐波那契數(shù)列第幾項(xiàng) 
	cout<<fibonacci(n);
	return 0;
} 

結(jié)果示例

在這里插入圖片描述

5.遞歸求排列

#include<bits/stdc++.h>
using namespace std;
int a[20], b[20];//a[]為排列的盒子,b[]為判斷元素是否放過的數(shù)組 
int n;
void perm(int k){//k表示開始放第k個(gè)數(shù) 
	if(k == n+1){//當(dāng)k>n時(shí)說明第k個(gè)數(shù)已經(jīng)放好,已經(jīng)一組排列完畢 
		for(int i=1; i<=n; i++){
			cout<<a[i]<<" ";
		}
		cout<<endl;
	}
	else{
		for(int i=1; i<=n; i++){//1-n個(gè)數(shù)各自放入盒子a[]中 
			if(b[i] == 0){//初始化b[]都為0,為0說明這個(gè)數(shù)沒放過 
				a[k] = i;//第k個(gè)數(shù)放入i 
				b[i] = 1;//i放了因此后面不能再放了 
				perm(k+1);//放第二個(gè)數(shù)。 
				b[i] = 0;//雖然第一次排列放了,但是第二次排列還需要用到。 
			}
		}
	}
}
int main(){
	cin>>n;//排列數(shù)個(gè)數(shù) 
	perm(1);//從放第一個(gè)數(shù)開始排列 
	return 0;
} 

示例結(jié)果

在這里插入圖片描述

6.求最大公約數(shù)

#include<bits/stdc++.h>
using namespace std;
int gcd(int a, int b){
	return b==0?a:gcd(b, b%a);
} 
int main(){
	int a, b;
	cin>>a>>b;
	cout<<gcd(a,b);
} 

示例結(jié)果

在這里插入圖片描述

7.偶位數(shù)的大整數(shù)乘法

#include<bits/stdc++.h>
using namespace std;
long mul(long x, long y, long n){
	if(x == 0 || y == 0)return 0;
	else if(n == 1)return x * y;
	else{
		long A = (long)x / pow(10, (long)(n/2));
		long B = x - A * pow(10, n/2);
		long C = (long)y / pow(10, (long)(n/2));
		long D = y - C * pow(10, n/2);
		long AC = mul(A, C, n/2);
		long BD = mul(B, D, n/2);
		long A_BD_C = mul((A - B),(D - C), n/2); 
		return AC * pow(10, n) + (A_BD_C + AC + BD)* pow(10, (long)(n/2)) + BD;
	}
}
int main(){
	long a, b, n, sign;
	if((a<0 && b>0) || (a>0 && b<0))sign = -1;
	else sign = 1;
	cin>>a>>b>>n;
	cout<<mul(a, b, n) * sign;
} 

結(jié)果示例

在這里插入圖片描述

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!      

相關(guān)文章

  • C++類的定義與實(shí)現(xiàn)

    C++類的定義與實(shí)現(xiàn)

    這篇文章主要介紹了C++類的定義與實(shí)現(xiàn),違章圍繞C++類的定義的相關(guān)資料展開全文內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-01-01
  • C++中sort函數(shù)的基礎(chǔ)入門使用教程

    C++中sort函數(shù)的基礎(chǔ)入門使用教程

    這篇文章主要給大家介紹了關(guān)于C++中sort函數(shù)的基礎(chǔ)入門使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧
    2018-12-12
  • C++ Cmake的構(gòu)建靜態(tài)庫和動(dòng)態(tài)庫詳解

    C++ Cmake的構(gòu)建靜態(tài)庫和動(dòng)態(tài)庫詳解

    這篇文章主要為大家詳細(xì)介紹了C++ Cmake的構(gòu)建靜態(tài)庫和動(dòng)態(tài)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C語言之整數(shù)劃分問題(遞歸法)實(shí)例代碼

    C語言之整數(shù)劃分問題(遞歸法)實(shí)例代碼

    這篇文章主要介紹了C語言之整數(shù)劃分問題(遞歸法)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • C++模擬鍵盤按鍵的實(shí)例

    C++模擬鍵盤按鍵的實(shí)例

    今天小編就為大家分享一篇C++模擬鍵盤按鍵的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • C++中單鏈表操作的示例代碼

    C++中單鏈表操作的示例代碼

    這篇文章主要為大家詳細(xì)介紹了C++中單鏈表操作的示例代碼,主要包括單鏈表的創(chuàng)建、元素的插入和刪除等。文中的代碼簡潔易懂,需要的可以參考一下
    2022-10-10
  • C語言從猜數(shù)字游戲中理解數(shù)據(jù)結(jié)構(gòu)

    C語言從猜數(shù)字游戲中理解數(shù)據(jù)結(jié)構(gòu)

    猜數(shù)字是興起于英國的益智類小游戲,起源于20世紀(jì)中期,一般由兩個(gè)人或多人玩,也可以由一個(gè)人和電腦玩。游戲規(guī)則為一方出數(shù)字,一方猜,今天我們來用這個(gè)游戲案例理解數(shù)據(jù)結(jié)構(gòu)
    2022-04-04
  • c++中struct和class的區(qū)別小結(jié)

    c++中struct和class的區(qū)別小結(jié)

    在C++中,class和struct都是用于定義自定義數(shù)據(jù)類型的關(guān)鍵字,本文主要介紹了c++中struct和class的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • C語言中指針常量和常量指針的區(qū)別

    C語言中指針常量和常量指針的區(qū)別

    本文主要介紹了C語言中指針常量和常量指針的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++實(shí)現(xiàn)下載的代碼

    C++實(shí)現(xiàn)下載的代碼

    這篇文章主要介紹了C++實(shí)現(xiàn)下載的代碼,以下載百度圖片為例較為完整的講述了C++下載的具體實(shí)現(xiàn)方法,需要的朋友可以參考下
    2014-10-10

最新評論

河池市| 双桥区| 海盐县| 姜堰市| 屯门区| 天祝| 正镶白旗| 和平区| 新兴县| 通榆县| 银川市| 左云县| 丹巴县| 方山县| 崇左市| 彩票| 沿河| 塔城市| 自贡市| 丹东市| 贞丰县| 枣强县| 尤溪县| 鸡泽县| 宝应县| 龙州县| 林芝县| 宁德市| 桐梓县| 杂多县| 苏州市| 资溪县| 甘德县| 阿巴嘎旗| 宜昌市| 麻江县| 碌曲县| 特克斯县| 扬中市| 三河市| 新宾|