1
1995:多数情况下,计算前几个盘的结果,寻找规律
#include<iostream>
#include<math.h>
using namespace std;
int main() {
int n, N, M;
cin >> n;
while (n--) {
cin >> N >> M;
long long sum = (long long )pow(2.0, N - M);
cout << sum << endl;
}
return 0;
}
1996:发牌模式,每张牌有三种去向
#include<iostream>
#include<math.h>
using namespace std;
int main(){
int n,m;
cin>>n;
while(n--){
cin>>m;
cout<<(long long )pow(3,m)<<endl;
}
return 0;
}
2064:a[i]=3*a[i-1]+2;
#include<iostream>
#include<math.h>
using namespace std;
int main(){
int m;
while(cin>>m){
long long *a=new long long [m+1];
a[0]=0;a[1]=2;
for(int i=2;i<=m;i++)
a[i]=3*a[i-1]+2;
cout<<a[m]<<endl;
delete[]a;
}
return 0;
}
2077:a[i]=3*a[i-1]+2;
最后的结果为前一个数据的结果加2
#include<iostream>
#include<math.h>
using namespace std;
int main(){
int n,m;
cin>>n;
while(n--){
cin>>m;
long long *a=new long long [m+1];
a[0]=0;a[1]=2;
for(int i=2;i<=m;i++)
a[i]=3*a[i-1]+2;
cout<<a[m-1]+2<<endl;
delete[]a;
}
return 0;
}
2175:计算m除以2除多少次后为奇数的次数再加1即为结果
#include<iostream>
#include<math.h>
using namespace std;
int main(){
long long n,m;
while(cin>>n>>m){
if(n==0&&m==0)break;
int count=1;
int r;
while(m>0){
r=m%2;
if(r!=0)
break;
else
{
count++;
m/=2;
}
}
cout<<count<<endl;
}
}