zoukankan      html  css  js  c++  java
  • Python-面试题-数学运算(math)

    """
    2.1.水仙花数
    
    如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。
    例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数
    那么问题来了,求1000以内的水仙花数(3位数)
    """
    # a = 153
    # for i in str(a):
    #     print(i)
    for i in range(100,1000):
        s = sum(int(x)**3 for x in str(i))
        if i == s:
            print(i)
    

    """ 2.2完全数 如果一个正整数等于除它本身之外其他所有除数之和,就称之为完全数。 例如:6是完全数,因为6 = 1+2+3; 下一个完全数是28 = 14+7+4+2+1。 求1000以下的完全数 """ for i in range(1, 1000): s = [] for j in range(1, i): if i % j == 0: s.append(j) if i == sum(s): print(i) #使用列表生成式 for i in range(1,1000): if sum([j for j in range(1,i) if i % j==0]) ==i: print(i)


    """ 2.3 数字1-100求和 求1+2+3…+100和 """ s = 0 for i in range(101): s += i print(s)


    """ 2.4计算求1-2+3-4+5-…-100的值 计算求1-2+3-4+5-…-100的值 """ appe = 1 s1 = 0 while appe <=100: if appe % 2 ==1: s1 += appe #相当于 s1 = s1 + appe else: s1 -= appe # 相当于s1 = s1 - appe appe += 1 #相当于appe = appe + 1 print(s1)


    """ 2.5计算求1+2-3+4-5… …100 的值 计算求1+2-3+4-5… …100 的值 """ add = 1 s = 0 while add <=100: if add==1 or add % 2 ==0: s +=add else: s -=add add +=1 print(s)


    """ 2.6计算 1-n 之间的所有 5 的倍数之和 定义一个函数:计算 1-n 之间的所有 5 的倍数之和,默认计算 1-100 ( n 是 一个整数) """ #第一种方法 def my_func(n): a = 1 s = 0 for a in range(1,n+1): if a % 5 == 0: s += a print(s) my_func(101) #第二种方法 def my_func1(n=100): return sum([j for j in range(1,n+1) if j % 5==0]) print(my_func1())


    """ 2.7 n个自然数的立方和 计算公式 13 + 23 + 33 + 43 + …….+ n3 1的立方+2的立方+3的立方…… 实现要求: 输入 : n = 5 输出 : 225 对应的公式 : 13 + 23 + 33 + 43 + 53 = 225 """
    def my_func2(n=5): return sum([x**3 for x in range(1,n+1)]) """


    2.8 阶乘10! 阶乘的意思: 10!=10x9x8x7x6x5x4x3x2x1 求10! """ n=10 s=1 for i in range(1,n+1): s *= i print(s)


    """ 2.9求1+2!+3!+…+10!的和 求1+2!+3!+…+10!的和 """ #方法一 n=1 s = 1 #作阶乘时初始值应设置为1 y = 0 #作累加时初始值应设置为0 while n <=10: s *= n y += s n+=1 print(y) #方法二 s = 0 a = 1 for i in range(1,11): a *= i s += a print(s)


    """ 2.10求s=a+aa+aaa+aaaa+aa…a的值 求s=a+aa+aaa+aaaa+aa…a的值 如:n = 5 a = 3 33333 = 3x10**4+ 3x10**3+ 3x10**2 + 3x10**1 +3x10**0 """ def my_func3(a=3,n=5): s=0 for i in range(n): s += a*10**(i) return s print(my_func3())


    """ 2.11 斐波那契数列1、1、2、3、5、8、13 ….. 已知一个数列:1、1、2、3、5、8、13、。。。。的规律为从 3 开始的每一项都等于其前两项的和,这是斐波那契数列。 求满足规律的 100 以内的所有数据 """ def my_func4(n = 100): a = 0 b = 1 while a <= n: print(a,end = " ",flush=True) a , b = b , a + b print(my_func4())


    三十六般武艺,七十二般变化,修练出个人品牌并发出光芒
  • 相关阅读:
    django中间件和常用模块
    django之forms组件
    django和ajax、分页器、批量插入数据
    django之模型层ORM操作
    (专题三)02-1 程序和程序设计流程-选择结构
    (专题三)01 程序和程序设计流程-顺序结构
    (专题二)05 矩阵的存储方式
    (专题二)04 矩阵的处理-矩阵的特征值
    [代码片段]YEAH!连通域标记和计数
    TTL和CMOS
  • 原文地址:https://www.cnblogs.com/deeptester-vv/p/14925568.html
Copyright © 2011-2022 走看看