zoukankan      html  css  js  c++  java
  • 九度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 }
  • 相关阅读:
    初学angular
    C#二维数组及其本质(转)
    蓝桥杯之递归算法
    同时安装Office2016和Visio2016
    蓝桥杯之暴力破解、枚举
    NAT(地址解析协议)
    云中继
    ACL(访问控制列表)
    虚拟链路(virtual-link)
    单臂路由
  • 原文地址:https://www.cnblogs.com/jasonJie/p/5806354.html
Copyright © 2011-2022 走看看