二级试题(一)

辗转相除法求最大公约数

  • 源代码
a = eval(input("请输入一个整数:"))
b = eval(input("请输入另一个整数:"))
m = min(a, b)
M = max(a, b)

while True:
      if M % m != 0:
        m = M % m
        M = min(a,b)
        a = M
        b = m
    else:
         break
    
print(m)
  • 参考代码
num1 = int(input("请输入第一个数字:"))
num2 = int(input("请输入第一个数字:"))
m = max(num1, num2)
n = min(num1, num2)
r = m % n
while r != 0:
    m = n
    n = r
    r = m % n
print(num1, "和", num2, "的最大公约数为", n)
  • 统计不同字符个数
text = input('请输入字符:')                       # 界面:让用户输入字符 
zgeshu = ygeshu = sgeshu = qgeshu = kgeshu = 0    # 设置初始值,以便用于for in循环
for i in text:
    if 40869 >= ord(i) >= 19968:                  # 本处使用十进制,简单。或者使用十六进制,再用ord('\u9fa5')转换为十进制的unicode编码;
        zgeshu += 1
    elif 57 >= ord(i) >= 48:
        sgeshu += 1
    elif 122 >= ord(str.lower(i)) >= 97:          # 直接使用str.lower()函数,将英文字符统一为小写,节省代码;
        ygeshu += 1
    elif i == ' ':
        kgeshu += 1
    else:
        qgeshu += 1
print('中文字符个数为{}'.format(zgeshu), '\n'+'数字字符个数为{}'.format(sgeshu), '\n'+'英文字符个数为{}'.format(ygeshu), '\n'+'空格字符个数为{}'.format(kgeshu), '\n'+'其他字符个数为{}'.format(qgeshu))
  • 羊车门问题
from random import *
change = unchange = 0
for i in range(1000):
    ans = randint(0,2)
    gus = randint(0,2)
    if ans == gus:
        unchange += 1
    else:
        change += 1
print('不换且成功的概率是:{}'.format(unchange/1000))
print('换且成功的概率是:{}'.format(change/1000))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容