首页 > 试题广场 >

星际穿越

[编程题]星际穿越
  • 热度指数:43298 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
航天飞行器是一种复杂而又精密的仪器,飞行器的损耗主要集中在发射和降落的过程,科学家根据实验数据估计,如果在发射过程中,产生了 x 程度的损耗,那么在降落的过程中就会产生 x2 程度的损耗,如果飞船的总损耗超过了它的耐久度,飞行器就会爆炸坠毁。问一艘耐久度为 h 的飞行器,假设在飞行过程中不产生损耗,那么为了保证其可以安全的到达目的地,只考虑整数解,至多发射过程中可以承受多少程度的损耗?

数据范围:

输入描述:
每个输入包含一个测试用例。每个测试用例包含一行一个整数 h (1 <= h <= 10^18)。


输出描述:
输出一行一个整数表示结果。
示例1

输入

10

输出

2
示例2

输入

1

输出

0
import math
print(int((math.sqrt((4*int(input()))+1)-1)/2))
发表于 2021-04-06 17:21:38 回复(0)
"""思路很简单:从int(h**0.5)的最大值开始遍历,直至找到可以承受最大损耗
"""
h=int(input())
n=int(h**0.5)
if(h==1):
    print(0)
else:
    for i in range(n,0,-1):
        X=i+i**2
        if(X<=h):
            print(i)
            break
通过
您的代码已保存
答案正确:恭喜!您提交的程序通过了所有的测试用例
发表于 2019-08-27 17:47:21 回复(0)
import math
h=int(input())
a=math.sqrt(1+4*h)
x=int((a-1)/2)
print(x)
发表于 2018-09-27 16:53:06 回复(0)
#耐久度 h ,发射损耗x满足:x + x **2 <= h
####1
'''
h = int(input())
x = 0
for i in range(1,h+1):
    h0 = i + i ** 2
    if h0 > h:
        x = i-1
        break
        
print(x)
'''
'''
您的代码已保存
运行超时:您的程序未能在规定时间内运行结束,请检查是否循环有错或算法复杂度过大。
case通过率为70.00%
'''
##########################

####2
#由x + x **2 <= h得:x <= (h + 0.25)** 0.5 - 0.5
h = int(input())
x = int((h + 0.25)** 0.5 - 0.5)
print(x)

发表于 2018-09-26 16:57:07 回复(0)
活生生的循环做出来,看了大佬的代码才知道原来就是一个二元一次不等式求解
h = int(input())
x = int(h ** (1 / 2))
while True:
    if (x*(x+1))<=h:
        # x-=1
        break
    else:
        x-=1
print(x)

发表于 2018-08-23 17:27:04 回复(0)
h=int(input())
print(int((h+0.25)**0.5-0.5))


发表于 2018-05-16 18:50:18 回复(0)
解方程?x + x^2 <= h
import math
h = int(input())
x = math.floor(-1 + math.sqrt(1 + 4 * h) ) / 2
print(int(x))

发表于 2018-04-10 01:27:05 回复(0)
n = int(input())
t = int(n**0.5)
for i in range(t,t+2):
    if i+i**2==n:
        print(i)
        break
    elif i+i**2 > n:
        print(i-1)
        break

发表于 2017-09-18 15:23:27 回复(0)
题目写的那么长。。。。
代码就几行^-^
发表于 2017-09-10 15:50:57 回复(0)
import math
n = input()
a = int(math.sqrt(n)) if n>=a*(a+1): print a else: print a-1
发表于 2017-08-29 21:49:55 回复(0)
print int(((1+4*input())**0.5-1)/2)

发表于 2017-08-11 16:09:41 回复(1)