zoukankan      html  css  js  c++  java
  • 51nod1837

    题解:

    数论,经过一些大佬的证明,只有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;
    }
  • 相关阅读:
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
  • 原文地址:https://www.cnblogs.com/xuanyiming/p/7625361.html
Copyright © 2011-2022 走看看