题意:
输入一个n,用如下的三角形来构成一个3×n的矩形(长n,高3),求能用多少种不同的方法构成
分析:
容易得知,每两列可以用两种方法来构成,那么总的方法可以是2的n/2次方个。最初是用pow(x,y)函数来计算,但是因为最大的n是60,而pow(2,30)已经溢出,因此定义long int来进行位运算计算结果。
代码:
#include<iostream>
#include<math.h>
typedef long long ll; //定义新的long int 类型
using namespace std;
int main() {
int n;
while(cin >> n){
if(n < 1 || n > 60) {
break;
}
if(n%2 != 0){
cout << 0 << endl;
} else{
cout << (1ll<<(n/2)) << endl; //因为n最大为60,2的30次方已经越界,页不能用pow(x,y)方法计算,改为位运算计算。
}
}
return 0;
}