5 条题解
- 1
信息
- ID
- 38
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 122
- 已通过
- 59
- 上传者
using namespace std;
int n,z=1;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
z*=2;
}
cout<<z;
return 0;
}
> #include <bits/stdc++.h>
#include <cmath>
using namespace std;
int main(){
int n;
cin >> n;
int r = pow(2,n);
cout << r;
}
利用中的pow函数可以求二的幂(二分算法)
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,ans = 1;
scanf("%d",&n);//读入n
if (n == 0){//特判(2^0=1)
cout << 1;
return 0;
}
while(n > 0){
ans*=2;
n--;
}
printf("%d",ans);
}
当然,while内的程序可以通过函数实现。
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,nn;
cin>>n;
if(0<=n&&n<31){
nn=pow(2,n);
}
cout<<nn;
}
我有一个问题:数据范围中明明写了n>=0,n<31;你为什么还要判断?
注册一个 睿爸信奥 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。