rt,我刚刚写了一下这篇题解,感谢铃酱指出的错误,然后我之前在比赛/之前提交AC的代码的时候的代码是这样的:
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){
long long n;//这里可以先用longlong来判断,最后再强转
cin>>n;//输入
if(n<2) cout<<0;//如果 n-1 <=0,直接输出没有这种情况
else cout<<(unsigned long long)(n*2-1);//这个时候强转,然后n*2-1(根据推导得出)
return 0;//华丽结束
}
注释是因为博客写的时候懒得删了。
刚刚铃酱帮忙指出了错误之后,我改了一下代码,是这样的:
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){
long long n;//这里可以先用longlong来判断,最后再强转
cin>>n;//输入
if(n<2&&n!=1) cout<<0;//如果 n-1 <=0,直接输出没有这种情况
else if(n==1) cout<<1;//特判n=1输出1
else cout<<(unsigned long long)(n*2-1);//这个时候强转,然后n*2-1(根据推导得出)
return 0;//华丽结束
}
也可以AC,说明n=1的时候是没有特判的,希望加强,如果管理大大没有时间的话,本蒟蒻可以造。