当前位置: 首页 > article >正文

JD18年秋招笔试疯狂数列python解答

问题如下:

链接:疯狂序列_京东笔试题_牛客网

[编程题]疯狂序列

  • 热度指数:149 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M

东东从京京那里了解到有一个无限长的数字序列: 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

解答:

def find_nth_term(n):
    # 二分查找的范围
    low, high = 1, 2
    # 找到高值范围
    while high * (high + 1) // 2 < n:
        low = high
        high *= 2

    # 进行二分查找
    while low < high:
        mid = (low + high) // 2
        if mid * (mid + 1) // 2 < n:
            low = mid + 1
        else:
            high = mid

    return low


# 读取输入
n = int(input().strip())
print(find_nth_term(n))

运行结果:


http://www.kler.cn/a/301041.html

相关文章:

  • STM32电源管理—实现低功耗
  • K8s学习笔记之了解k8s的网络模型
  • Postman之安装及汉化基本使用介绍
  • 视频直播5G CPE解决方案:ZX7981PG/ZX7981PMWIFI6网络覆盖
  • 1+X应急响应(网络)网络流量分析技术:
  • vue2动态导出多级表头表格
  • 使用Docker快速启动Nacos集群
  • RepLKNet架构详解
  • 在 Vue 2 中使用 Axios 发起 POST 和 GET 请求
  • C#学习 深入理解委托、匿名方法、Lamda表达式、Linq;
  • 【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)
  • 点亮第一盏LED灯 2),stm32CubeMX在线导入F103C8T6芯片包
  • Three 渲染器(二)
  • 如何将Windows风格的剪切和粘贴添加到Mac访达中
  • springboot配置多数据源
  • MySQL record 03 part
  • 第67期 | GPTSecurity周报
  • 简单的 Fortran 程序示例
  • C语言蓝桥杯:语言基础
  • c/c++面试100道
  • 工厂安灯系统在设备管理中的重要性
  • 怎么利用XML发送物流快递通知短信
  • 引领智能家居新风尚,WTN6040F门铃解决方案——让家的呼唤更动听
  • 公开数据库下载2-药敏性、综合类(TCGA、COSMIC、UCSC、GATK、cBioPortal)
  • 虚拟机安装VMware-tools详细教程
  • Telegram miniApp开发(三)