笔试刷题-京东2018-07-29

题目描述:

/**
东东从京京那里了解到有一个无限长的数字序列: 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, ...
(数字k在该序列中正好出现k次)。东东想知道这个数字序列的第n项是多少,你能帮帮他么
输入描述:
输入包括一个整数n(1 ≤ n ≤ 10^18)
输出描述:
输出一个整数,即数字序列的第n项
输入例子1:
169
输出例子1:
18
*/

思路如下:

找出最小的n, 使得n*(n+1)/2>=target
注意写法放置爆long long 这里求n有两种方法:1.二分查找 2.直接调用开方函数

代码如下:

#include<stdio.h>
#include<iostream>
#include<cmath>
 
using namespace std;
 
int main(){
    long long N;
    scanf("%lld", &N);
    long long sqrtN=sqrt(2*N);
    if(sqrtN*(sqrtN+1)<2*N)
        sqrtN++;
    printf("%lld\n", sqrtN);
    return 0;
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 动态规划 111. 爬楼梯思路类似斐波那契数列注意考虑第 0 阶的特殊情况 272. 爬楼梯 II思路类似上题,只...
    6默默Welsh阅读 7,122评论 0 1
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,350评论 0 33
  • PHP与数据库PHP有三种方式操作MySQL数据库1.PHP有三种方式操作MySQL数据库(1)MySQL扩展库(...
    c与php阅读 2,713评论 0 3
  • 就在这个月,中国的航班上可以在飞行途中使用手机了,但是还没有移动Wi-Fi。于是我就得处在断网的环境中三个多小...
    看的开阅读 4,298评论 0 0
  • 文\周小妖 昨天,一位很久未见的朋友发微信来说,下午下班了有没有时间一起逛逛,我想也没想的就答应了,因为也是好久没...
    周小妖阅读 4,348评论 7 3