網站首頁 編程語言 正文
1.遞歸二分搜索
#includeusing 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; //輸入元素個數 for(int i=0; i >a[i]; sort(a, a+n); binarysearch(0, n-1, 5);//二分搜索 cout<
結果示例
2.遞歸歸并排序
C語言遞歸實現歸并排序
3.Ackerman函數
#includeusing 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<
結果示例
4.Fibonacci數列
#includeusing 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;//返回斐波那契數列第幾項 cout<
結果示例
5.遞歸求排列
#includeusing namespace std; int a[20], b[20];//a[]為排列的盒子,b[]為判斷元素是否放過的數組 int n; void perm(int k){//k表示開始放第k個數 if(k == n+1){//當k>n時說明第k個數已經放好,已經一組排列完畢 for(int i=1; i<=n; i++){ cout<>n;//排列數個數 perm(1);//從放第一個數開始排列 return 0; }
示例結果
6.求最大公約數
#includeusing 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<
示例結果
7.偶位數的大整數乘法
#includeusing 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<
結果示例
總結
原文鏈接:https://blog.csdn.net/qq_52785473/article/details/123178904
相關推薦
- 2022-10-28 關于react中的常見錯誤及解決_React
- 2022-03-23 c++特殊構造函數詳解_C 語言
- 2022-09-25 創建的對象如何在堆區分配內存
- 2022-05-27 五個經典鏈表OJ題帶你進階C++鏈表篇_C 語言
- 2022-11-05 Kotlin?Select協程多路復用的實現詳解_Android
- 2022-09-08 go語言中函數與方法介紹_Golang
- 2022-07-22 Docker安裝Seata分布式鎖
- 2022-04-10 Python?十個字典用法使用技巧歸納_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支