标签:scan std pac ret 代码 c++ blog 数论 using
题解:
数论,经过一些大佬的证明,只有1和2这两种可能性
然后再分开来判断即可
注意1的时候为0
代码:
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll n,t,k,kk; int main() { while(~scanf("%lld",&n)) { if(n==1){puts("0");continue;} k=sqrt(2*n-1); t=n*(n+1)/2;kk=sqrt(t); if(k*(k+1)/2==n||k*(k+1)/2+1==n|| t==kk*kk||t==kk*kk+1)puts("1"); else puts("2"); } return 0; }
标签:scan std pac ret 代码 c++ blog 数论 using
原文地址:http://www.cnblogs.com/xuanyiming/p/7625361.html