• 九度oj 题目1357:疯狂地Jobdu序列


    题目描述:

    阳仔作为OJ的数据管理员,每一周的题目录入都让其很抓狂,因为题目不是他出的,他控制不了出题的速度……在等题目的时候,阳仔又不敢出去打篮球,所以只能在纸上乱涂乱写,这天,阳仔在纸上写下了这样的序列:

    1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6 ……

    即大小为k的数字,正好会在序列中连续重复k次。写到这里,阳仔兴奋了,但是他不知道这种序列叫什么名字,那就暂时叫它jobdu疯狂序列好了。现在阳仔想让你解决一个问题是,假如给你一个整数n,你能说出这个序列中,第n个元素的大小是多少么? 记住,速度要快哦,亲~

    输入:
    每个测试文件包含多个测试案例,每个测试案例只有一行,即整数n,1 <= n <= 10^18,代表要查找的第n个元素。
    输出:
    对于每个测试案例,输出疯狂的jobdu序列中的第n个元素。
    样例输入:
    1
    2
    3
    4
    5
    
    样例输出:
    1
    2
    2
    3
    3
    
    提示:

    输入较大,不建议使用cin读入输入数据。

    还是数学问题

    代码如下

     1 #include <cstdio>
     2 #include <cmath>
     3 typedef long long ll;
     4 ll n;
     5 int main() {
     6     while(scanf("%lld",&n) != EOF) {
     7         ll ans;
     8         ans = (ll)sqrt(1 + 8 * n)- 1;
     9         ans = ans/2;
    10         ll n2 = (1+ans)*ans/2;
    11         while(n2 < n) {
    12             ans = ans+1;
    13             n2 = (1+ans)*ans/2;
    14         }
    15         printf("%lld
    ",ans);
    16     }
    17     return 0;
    18 }
  • 相关阅读:
    mongodb导入导出
    python笔记1
    C# 文件下载断点续传
    热水维修记事
    memcached笔记
    模拟登陆
    Nginx学习笔记之加强篇
    Redis学习笔记之基础篇
    Nginx学习笔记之应用篇
    Nginx 学习笔记之安装篇
  • 原文地址:https://www.cnblogs.com/jasonJie/p/5806354.html
Copyright © 2020-2023  润新知