首页 > 试题广场 >

疯狂序列

[编程题]疯狂序列
  • 热度指数:4885 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
东东从京京那里了解到有一个无限长的数字序列: 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
头像 whoway
发表于 2020-09-16 20:16:10
本题题解 #include<bits/stdc++.h> using namespace std; //1000,000,000+5就不超时 //1500,000,000+5就超时了,只AC0.9,只能让我在这个基础上弄个个数学吧不等式求解 const int maxn=1500000 展开全文
头像 重生之我要当分子
发表于 2025-01-01 02:11:38
解题思路 我们需要找到一个无限长的数字序列,其中数字k在该序列中正好出现k次。序列的前几项如下: 1 2, 2 3, 3, 3 4, 4, 4, 4 5, 5, 5, 5, 5 ... 可以观察到,数字k的最后一个出现位置是1 + 2 + 3 + ... + k = k * (k + 1) / 展开全文
头像 bao_hu_yuan_zhang
发表于 2024-02-22 09:39:55
#include <iostream> using namespace std; int main() { int i=0; long long a; cin>>a; long long ans=0; for(i=1;;i++) 展开全文
头像 17c89
发表于 2024-04-05 13:59:40
import java.util.Scanner; /** * JD13 疯狂序列 * @author d3y1 */ public class Main { public static void main(String[] args){ Scanner in = n 展开全文