1.二进制间距
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int i;
cin >> i;
int flag = 0;
int distance = 0, pre = 0;
int count = 0;
while (i) {
count++;
//跟1与,相当于取二进制的最后一位
if (i & 1) {
//不是第一个1
if (flag == 1) {
distance = max(distance, count - pre);
}
//第一个1
else {
flag = !flag;
}
//记住当前1的位置
pre = count;
}
//右移1位,相当于除以2
i = i >> 1;
}
cout << distance;
system("pause");
}
2.升温倒计时
3.归并排序
4.递归应用-小青蛙跳台阶
#include<iostream>
using namespace std;
int f(int n){
if(n==1||n==2)
return n;
else
return f(n-1)+f(n-2);
}
int main(){
int n;
cin>>n;
cout<<f(n);
return 0;
}
5.递归求解最大公约数
#include<iostream>//递归求解最大公约数
using namespace std;
int gcd(int a, int b) {
if (a % b == 0) {
return b;
}
else {
return gcd(b, a % b);
}
}
int main()
{
int n;
cin>>n;
while(n--)
{
int a,b;
cin>>a>>b;
if(a<b)
{
a=b-a;
b=b-a;
a=a+b;
}
cout<< gcd(a,b)<<endl;
}
return 0;
}