//新生训练
//欧几里得法求最大公约数
#include <bits/stdc++.h>
#include <iostream>
#include <algorithm>
using namespace std;
int main(){int a,b;cin>>a>>b;int r = a%b;while (r!=0){a = b;b = r;r = a%b;}cout<<b<<endl;return 0 ;
}
//递归法求斐波那契数列
#include <iostream>
#include <algorithm>
using namespace std;
int Fib(int x)
{if (x == 1){return 0;}else if (x == 2){return 1;} else{return Fib(x - 1) + Fib(x - 2);}
}
int main()
{int n = 0;cin >> n;//第n个斐波那契数cout << Fib(n);return 0;
}
//递归求阶乘
#include <bits/stdc++.h>
using namespace std;
int f(int n) {if(n==1) return 1;else{return n*f(n-1);}
}
int main() {int n = 0;cin >> n;int sum = f(n);cout << sum;return 0;
}
//简单DFS(全排列)
#include <iostream>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
int a[10], b[10];
int n;
void dfs(int u)// u表示深度,当前选的是第几个数字
{ if (u > n)// 最后一个数字已经选完,输出答案{ for (int i = 1; i <= n; i++){cout << a[i] << ' ';}cout << endl;return; // 回到上一个数字,重新选上一个数字}for (int i = 1; i <= n; i++){if (!b[i])continue; // 如果数字i已经选了就跳过b[i] = 1; // 数字i没选过,选择数字i,标记已选择数字ia[u] = i; // 将数字i填入第u个位置dfs(u + 1); // 选择下一个(第u+1个)数字b[i] = 0; // 重新选择第u个数字为i+1,标记数字i未选择}
}
int main()
{cin >> n;dfs(1);return 0;
}
//简单二分查找(某个数是否在某个数组中)
#include <iostream>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int main()
{long long a[N];long long n, m;cin >> n >> m;for (int i = 0; i < n; i++){cin >> a[i];}sort(a, a + n);while (m--){long long k;cin >> k;long long l = 0;long long r = n - 1;while (l <= r){long long mid = (l + r) / 2;if (a[mid] < k){l = mid + 1;}else if (a[mid] > k){r = mid - 1;}else{cout << "YES" << endl;break;}}if (l > r){cout << "NO" << endl;}}return 0;
}
//笔者暂时想出这些,想到了之后再补;
~~~//仅当笔者个人备忘录使用。