码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python 第六章


    目录

    6-1 使用函数求特殊a串数列和

    6-2 使用函数求素数和

    6-3 使用函数统计指定数字的个数

    6-4 使用函数输出指定范围内Fibonacci数的个数 

    6-5 使用函数求余弦函数的近似值

    6-6 缩写词

    7-1 输入列表,求列表元素和(eval输入应用)

    7-2 一帮一

    7-3 验证“哥德巴赫猜想”

    7-4 列表或元组的数字元素求和

    7-5 列表数字元素加权和(1)

    7-6 列表元素个数的加权和(2)

    7-7 求指定层的元素个数

    7-8 输出全排列

    此解法为"动态规划",没算法底子可能比较难看懂


    6-1 使用函数求特殊a串数列和

    1. def fn(a, n):
    2. result = a
    3. key = a
    4. for index in range(1, n):
    5. key = key * 10 + a
    6. result += key
    7. return result

    6-2 使用函数求素数和

    1. import math
    2. def prime(num):
    3. if num < 2:
    4. return False
    5. if num < 4:
    6. return True
    7. for index in range(2, int(math.sqrt(num)) + 1):
    8. if num % index == 0:
    9. return False
    10. return True
    11. def PrimeSum(m, n):
    12. result = 0
    13. for index in range(m, n + 1):
    14. if prime(index):
    15. result += index
    16. return result

    6-3 使用函数统计指定数字的个数

    1. def CountDigit(number, digit):
    2. result = 0
    3. num = int(abs(number))
    4. while num > 0:
    5. if num % 10 == digit:
    6. result += 1
    7. num = int(num/10)
    8. return result

    6-4 使用函数输出指定范围内Fibonacci数的个数 

    1. dict1 = {0: 1, 1: 1} # 记录每一次的斐波那契数
    2. dict2 = [1] # 记录出现过的斐波那契数
    3. a = b = key = 1
    4. while b < 100001:
    5. key += 1
    6. a, b = b, a + b
    7. dict1[key] = b
    8. dict2.append(b)
    9. def fib(n):
    10. return dict1[n]
    11. def PrintFN(m, n):
    12. result = []
    13. for index in range(m, n + 1):
    14. if index in dict2:
    15. result.append(index)
    16. return result

    6-5 使用函数求余弦函数的近似值

    1. def Jie(num):
    2. if num == 1:
    3. return 1
    4. return num * Jie(num - 1)
    5. def funcos(eps, x): # 返回cos(x)的值
    6. result = 1
    7. flag = 2
    8. key = pow(x, flag) / 2
    9. while abs(key) >= eps:
    10. result += key if flag % 4 == 0 else -key
    11. flag += 2
    12. key = pow(x, flag) / Jie(flag)
    13. return result

    6-6 缩写词

    1. def acronym(str1):
    2. list1 = str1.split()
    3. result = ""
    4. for index in range(len(list1)):
    5. ch = list1[index][0]
    6. if 'a' <= ch <= 'z':
    7. ch = chr(ord(ch) - 32)
    8. result += ch
    9. return result

    7-1 输入列表,求列表元素和(eval输入应用)

    1. box = eval(input())
    2. print(sum(box))

    7-2 一帮一

    1. n = int(input())
    2. box = []
    3. for index in range(n):
    4. sex, name = input().split()
    5. box.append([sex, name])
    6. while len(box) > 0:
    7. for index in range(len(box) - 1, 0, -1):
    8. if box[index][0] != box[0][0]:
    9. print("%s %s" % (box[0][1], box[index][1]))
    10. box.pop(index)
    11. box.pop(0)
    12. break

    7-3 验证“哥德巴赫猜想”

    1. from math import sqrt
    2. def SU(num):
    3. if num < 2:
    4. return False
    5. if num < 4:
    6. return True
    7. for index in range(3, int(sqrt(num) + 3), 2):
    8. if num % index == 0:
    9. return False
    10. return True
    11. N = int(input())
    12. key = 2
    13. for z in range(3, N, 2):
    14. if SU(z) and SU(N - z):
    15. key = z
    16. break
    17. print("%d = %d + %d" % (N, key, N - key))

    7-4 列表或元组的数字元素求和

    1. def SUM(str1):
    2. if type(str1) == int:
    3. return str1
    4. if type(str1) != str:
    5. return sum(SUM(x) for x in str1)
    6. return 0
    7. box = eval(input())
    8. print(SUM(box))

    7-5 列表数字元素加权和(1)

    1. def SUM(str1, deep):
    2. if type(str1) == int:
    3. # print("%d %d" % (str1, deep))
    4. return str1 * deep
    5. if type(str1) != str:
    6. return sum(SUM(x, deep+1) for x in str1)
    7. return 0
    8. box = eval(input())
    9. print(SUM(box, 0))

    7-6 列表元素个数的加权和(2)

    1. def SUM(str1, deep):
    2. if type(str1) == int:
    3. # print("%d %d" % (str1, deep))
    4. return deep
    5. if type(str1) != str:
    6. return sum(SUM(x, deep+1) for x in str1)
    7. return 0
    8. box = eval(input())
    9. print(SUM(box, 0))

    7-7 求指定层的元素个数

    1. result = [0 for index in range(101)] # 记录各层出现元素的次数(数组)
    2. def SUM(str1, deep):
    3. if type(str1) == int:
    4. # print("%d %d" % (str1, deep))
    5. result[deep] += 1
    6. elif type(str1) != str:
    7. for index in str1:
    8. SUM(index, deep + 1)
    9. box = eval(input())
    10. SUM(box, 0)
    11. command = int(input())
    12. print(result[command])

    7-8 输出全排列

    1. appear = [0 for cdl in range(520)]
    2. N = int(input())
    3. result = []
    4. def printNum(num, deep):
    5. if appear[num] == 1:
    6. return
    7. else:
    8. result.append(num)
    9. appear[num] = 1
    10. for index in range(1, N + 1):
    11. printNum(index, deep + 1)
    12. if deep == N:
    13. for index in result:
    14. print(index, end='')
    15. print()
    16. appear[num] = 0
    17. result.pop(deep-1)
    18. for z in range(1, N + 1):
    19. printNum(z, 1)

  • 相关阅读:
    Java的编程之旅44——学生信息管理系统
    使用promise的基本功能【四、Promise源码】
    双翌保养码使用指南方法三
    Windows安装Erlang
    SpringMVC(七):SpringMVC的响应处理
    这道静态变量题,我居然考了0分
    架构师聊编程-技术晋级篇
    JS 运行机制最全面的一次梳理
    opencv内存溢出del释放变量 (python)
    清晰还原31年前现场,火山引擎超清修复Beyond经典演唱会
  • 原文地址:https://blog.csdn.net/daybreak_alonely/article/details/127136008
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号