py循环结构作业

水仙花数

c 语言里面的在线处理法

  1. **不是^^
  2. py自动做浮点数除法,地板除用//
  3. 强调文本(md用法)
# -*- coding: utf-8 -*-
# Py_Coding 
# 2022/11/9, 21:19
# 备注:循环作业-水仙花数 找出 100 - 999之间的水仙花数,各位数字的立方和等于这个数本身
# 数的分解-把一个三位数分解成个 十 百位,然后分别做立方和想加
# 数的分解和存储,以及用python语句实现
for i in range(100, 1000):  # 对100-999的数字进行拆解处理
    sum = 0
    num = i
    while num > 0:
        a = num % 10
        sum += a ** 3
        num //= 10  # 错误点1,c语言里面的地板除要用,py里面要用//
    if sum == i:
        print("该水仙花数为 %d" %i)

视频里的方法是这样的

逆序正整数N

# 输入一个正整数,将其反转
'''
先拆开,分解存储,然后再倒序按照10进制加回去
1.输入数字 2.拆开分解
3.total = total * 10 + 4 //可以理解成10进制通用做法
4.每一轮这样操作,这样就反转过来了
5.可以把问题拆解成两部分 数字分解 + 把一串输入的序列转换成10进制
或者拼接成字符串?
'''
num = int(input("请输入这个数字: "))
total = 0
while num > 0:
    i = num % 10
    num //= 10
    total = total * 10 + i
print(total)

理解 total 的作用

标准答案
在这里插入图片描述

算组合数 m >= n , C(m,n)

  1. 苯方法
# 算组合数 m >= n , C(m,n)
'''
m的阶乘,用循环实现
n的阶乘,和m-n的阶乘
然后相除,这是苯方法
'''
m = int(input("输入m: "))
n = int(input("输入n: "))
mf, nf, mnf = 1, 1, 1
for i in range(1, m+1):
    mf *= i
for i in range(1, n+1):
    nf *= i
for i in range(1, (m-n)+1):
    mnf *= i
print(mf // (nf * mnf))
# 循环的使用,后续可以封装成C(m,n)函数

import form as 的用法

  1. form 包 import 函数 as 别名(aisle)
from math import factorial as fc
m = int(input("m:"))
n = int(input("n:"))
print(fc(m) // (fc(n) * fc(m - n)))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值