这题其实就是高斯求和问题,即1+...+x=x(x+1)/2。
由此,我们就可以用递推的思想来解决问题:
include<bits/stdc++.h>
using namespace std;
int main() {
//freopen("ask.in","r",stdin);
//freopen("ask.out","w",stdout);
long long n,r=0;
cin>>n;
for(int i=1;i<=999;++i)
{
r+=i;
if(r==n)
{
cout<<"YES";//如果成立
return 0;
}
if(r>n)
{
cout<<"NO";//如果大于了n,则之后的r也必大于n,所以不成立。
return 0;
}
}
return 0;
}
原文地址:https://www.cnblogs.com/ThinkofBlank/p/10146186.html
时间: 2024-11-06 07:14:43