求问各位大神:
习题一 给定自然数 n,编写函数,求其各位数字之和,如数 1234 各位数字之和为10。编写函数,重复上述过程,直至得到 1~9 之间的某个数。
习题二 继续上一题。编写函数,检查 1~99999 之间所有数,给出最终结果中1~9 出现比例。
习题三 编写函数,使用递归方法求 C(n, k) 。
习题四 编写函数,计算圆周率。存在圆心在直角坐标系原点且半径为 1 的圆及其外切正方形。为计算方便,仅考虑位于第一象限的四分之一正方形和四分之一圆。随机生成该四分之一正方形中一系列点,散布于四分之一圆内比例即为圆周率四分之一。散步点越多,结果越精确,耗时也越长。
def pf(n):
s = 0
while n>0:
s += n%10
n //= 10
return s
def gf(n):
while n>9:
n = pf(n)
print(n)
return n
n = int(input("输入一个自然数:"))
print("结果:",gf(n))
第二题
def pf(n):
s = 0
while n>0:
s += n%10
n //= 10
return s
def gf(n):
while n>9:
n = pf(n)
return n
def hf():
dic = {x:0 for x in range(1,10)}
for n in range(1,100000):
s = gf(n)
dic[s] += 1
for k,v in dic.items():
print(f'{k} 出现 {v} 次、比率 {v/99999:%}')
hf()
“直至得到 1~9 之间的某个数。”是什么意思?
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y