在出题,捞。
写了一份代码生成数据,然后改了改之后跑自己的数据,发现wa了。(即本地与洛谷ide答案不一样)
经检查,错误出现在答案超过long long表示范围之后。
给代码:
#include<bits/stdc++.h>
using namespace std;
unsigned long long n,ans;
inline unsigned long long js(unsigned long long n){
if(n==0)return 0;
return pow(2,n)+js(n-1);
}
inline void run(unsigned long long n){
if(n==1){ans+=1;return;}
else if(n==0)return;
else ans+=js(n-1)+1+2*js(n-2)+2;
run(n-2);
return;
}
int main(){
scanf("%llu",&n);
run(n);
printf("%llu",ans);
return 0;
}