JD13. 疯狂序列
描述
东东从京京那里了解到有一个无限长的数字序列: 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
输出:
18
C 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2019-04-06
#include<stdio.h> #include<math.h> int main() { long long int n,m; scanf("%lld",&n); m=ceil((sqrt(1+8*n)-1)/2); printf("%lld",m); return 0; }
C++14 解法, 执行用时: 2ms, 内存消耗: 368KB, 提交时间: 2019-04-29
#include<stdio.h> #include<algorithm> #include<math.h> using namespace std; int main(){ long long n; while(scanf("%lld",&n) != EOF){ n = n * 2; long long m = sqrt(n) + 2; while(n > m * (m - 1) || n <= (m - 2) * (m - 1))m--; printf("%d\n",m - 1); } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 368KB, 提交时间: 2019-03-26
#include<stdio.h> #include<math.h> int main() { long long int n,m; scanf("%lld",&n); m=ceil((sqrt(1+8*n)-1)/2); printf("%lld",m); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 368KB, 提交时间: 2019-02-24
#include<stdio.h> #include<math.h> int main() { long long int n,m; scanf("%lld",&n); m=ceil((sqrt(1+8*n)-1)/2); printf("%lld",m); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 372KB, 提交时间: 2019-07-17
#include<stdio.h> #include<math.h> int main() { long long int n,m; scanf("%lld",&n); m=ceil((sqrt(1+8*n)-1)/2); printf("%lld",m); return 0; }