华为机试(python):基础数学

这篇博客涵盖了多个算法的实现,包括求最小公倍数、浮点数取整、IP地址与整数的转换、杨辉三角的变形和寻找与7相关的数字。同时也探讨了完全数的计算,展示了如何找出一定范围内完全数的个数。文章通过代码实例展示了算法的运用和数学规律的发现。
摘要由CSDN通过智能技术生成

HJ108 求最小公倍数

题目:

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。

输入描述:

输入两个正整数A和B。

输出描述:

输出A和B的最小公倍数。

##短除法
A,B = map(int,input().split())
T = 1
for i in range(2,min(A,B)+1):
    while A % i == 0 and B % i == 0:
        #T为最小公约数
        T = T * i
        #//向下取整
        A = A//i
        B = B//i
print(T*B*A)

HJ7 取近似值

写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。

输入描述:

输入一个正浮点数值

输出描述:

输出该数值的近似整数值

while True:
    try:
        
        a = float(input())
        
        if a-int(a) == 0.5:
            print(int(a)+1)
        else:
            print(int(round(a,0)))
                
    except:
        break
        

HJ33 整数与IP地址间的转换

原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成
一个长整数。
举例:一个ip地址为10.0.3.193
每段数字             相对应的二进制数
10                   00001010
0                    00000000
3                    00000011
193                  11000001

组合起来即为:00001010 00000000 00000011 11000001,转换为10进制数就是:167773121,即该IP地址转换后的数字就是它了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值