2017.09.08京东校招C/C++编程题-疯狂的序列
2017-09-10 14:24
190 查看
/******************************************************** 2017.09.08京东校招C/C++编程题-疯狂的序列 By:CUITWhy 作者原创,转载请注明出处! 提交结果:AC 题目描述(数据范围为long long): 有一序列为1,2,2,3,3,3,4,4,4,4,5,5,5,5,5... 输入:一个正整数n 输出:序列中第n个数的值 输入样例:12 输出样例:5 解题思路: 打表发现规律 i n 1 1 2 3 3 6 4 10 5 15 6 21 7 28 8 36 i*(i+1) = 2*n 进一步发现 tmp = sqrt(2*n)的值有两种结果, 一是其值即为所求值,直接输出即可 二是其值比所求值小1,加1输出即可 怎样判断呢? 如果tmp*(tmp+1) < n,其值就比所求值小1, 否则其值即为所求值。 ********************************************************/ #include <iostream> #include <cmath> using namespace std; int main(void) { long long n; cin >> n; long long tmp = sqrt(2 * n); if ( (tmp * (tmp + 1) / 2) < n ) { cout << tmp + 1 << endl; } else { cout << tmp << endl; } }
相关文章推荐
- 京东校招笔试(C++方向)编程题
- 网易2018校招编程题 操作序列(C++)
- 2018 京东笔试疯狂序列
- 校招编程题目(1) C++:括号匹配方案(京东)
- 2018京东笔试 疯狂序列 神奇数
- 网易2017校招 [编程题] 最长公共子括号序列@Java
- 【编程题】京东校招 2017 集合
- 2017京东春招C/C++编程题(1)——站队
- 【优先队列】百度2018校招编程题—序列合并
- 京东2015校招笔试编程题
- 牛博网 京东2017校招编程题 python解答
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(3) 最大子序列和问题
- 京东2018校招在线笔试编程题①
- 爱奇艺2018秋季校招C++工程师(第一场)编程题 - 题解
- 京东2017校招笔试编程题2:进制转换、辗转相除法
- 京东2017校招编程题
- 京东2016校招编程题
- 2016年9月5号京东校招笔试编程题
- 【真题】京东2017校招编程题 进制均值
- 网易2018校招编程题 等差数列(C++)