笔试题:【美团】二分法求开方(Python)

本文通过二分法解决美团笔试题中的开方问题,详细分析思路及Python代码实现。同时,探讨根据输入年份和月份计算当月实际天数的算法,包括闰年的判断。最后提及了浦发银行面试题中的回文素数问题。
摘要由CSDN通过智能技术生成

1:题目:二分法求开方

给定一个整数,求其开方后的整数位

1)分析思路

1)x ^2 = n, 故采用二分法解决
2)如:n =7
0,1,2,3,4,5,6,7
(0+7)/2 = 3, 3^2 = 9 >7 (因此,开方后的值小于3,所以下次的搜索范围左调缩减到[0,2])
(0+2)/2 = 1,1^2 = 1<7 (因此开方后的的值大于1,所以下次的搜索范围右调缩减到[2,2])
因此,开方后的值为 2
3)x ^2 = n, 故 n 的开方为 x
切记:当不知道循环次数时,使用为了while循环

2)代码
import sys
n = int(input())     #一般采取动态输入

def fsear(n):
    left = 0
    right = n
    while left <= right:    #不知道循环次数就用while 
        mid =  int((left + right)/2 )
        if mid**2 < n  and  (mid+1)**2 > n:
            return  mid
        elif  mid**2 < n:
            left = mid +1
        elif mid**2 > n:
            right =  mid
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值