weixin_57975789
2021-05-06 23:26
采纳率: 71.4%
浏览 79
已采纳

python函数编程

求问各位大神:

习题一 给定自然数 n,编写函数,求其各位数字之和,如数 1234 各位数字之和为10。编写函数,重复上述过程,直至得到 1~9 之间的某个数。

习题二 继续上一题。编写函数,检查 1~99999 之间所有数,给出最终结果中1~9 出现比例。

习题三 编写函数,使用递归方法求 C(n, k) 。

习题四 编写函数,计算圆周率。存在圆心在直角坐标系原点且半径为 1 的圆及其外切正方形。为计算方便,仅考虑位于第一象限的四分之一正方形和四分之一圆。随机生成该四分之一正方形中一系列点,散布于四分之一圆内比例即为圆周率四分之一。散步点越多,结果越精确,耗时也越长。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 已采纳
    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()
    
    评论
    解决 无用
    打赏 举报
查看更多回答(3条)

相关推荐 更多相似问题