数学不等式求解

疯狂序列

http://www.nowcoder.com/questionTerminal/dd8f34e9b83e412bab0b45a845889d34

本题题解

#include<bits/stdc++.h>
using namespace std;

//1000,000,000+5就不超时
//1500,000,000+5就超时了,只AC0.9,只能让我在这个基础上弄个个数学吧不等式求解
const int maxn=1500000000+5;



void solve(long long n)
{
    long long left;
    for(long long i=1;i<maxn;++i)
    {
        long long temp=i*(i+1)/2;
        if(temp>=n)
        {
            left=i;
            break;
        }
    }

    printf("%lld\n",left);

}

int main()
{

    long long n;
    while(~scanf("%lld",&n))
    {
        long long out=ceil( (sqrt(1+8*n)-1)/2 );
        printf("%lld\n",out);
    }

    return 0;
}

公式由来,找到Sout>=n的位置
n*(n+1)/2>=n

全部评论

相关推荐

今晚做笔试的还有机会约面吗?有听说后面做笔试的会被认为来华为的意愿度不是很高.....
ggrr:不会,华为笔试都要排队的。不是说想写就能发的。有的人投递晚了几天就排在后面写了。
投递华为技术有限公司等公司10个岗位
点赞 评论 收藏
分享
08-05 18:14
门头沟学院 Java
小花的沉默:是学历厂没错啊,学历太高了不要
投递小鹏汽车等公司10个岗位
点赞 评论 收藏
分享
驼瑞驰_招募评论官版...:点击就挂,露头就秒
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务