重庆做网站费用,南京建企业网站哪家好,灵感设计网站,哈尔滨市延寿建设局网站题目1#xff1a;找出100-999之间的水仙花数#xff08;各位数字的立方和刚好等于这个数本身#xff09;
如#xff1a;153 1^3 5^3 3^3算法分析#xff1a;
123 // 100 1 --- 23 获取百位数
123 // 10 12 % 10 2 -- 获取十位数#xff08;法一#x…题目1找出100-999之间的水仙花数各位数字的立方和刚好等于这个数本身
如153 1^3 5^3 3^3算法分析
123 // 100 1 --- 23 获取百位数
123 // 10 12 % 10 2 -- 获取十位数法一
123 % 100 23 // 10 2 -- 获取十位数法二
123 % 10 3 -- 获取个位数实现
for num in range(100,1000):bw num // 100sw num // 10 %10gw num % 10if bw ** 3 sw ** 3 gw ** 3 num:print(num)输出
153
370
371
407题目2输入两个非负整数m和nmn计算C(m, n)的值。
算法分析
A(m, n) m! / (m - n)! --- 排列 --- permutation
C(m, n) m! / n! / (m - n)! --- 组合 --- combination如C(5, 3) 5! / 3! / 2! 10实现
m int(input(m ))
n int(input(n ))fm 1
for i in range(2, m 1):fm * ifn 1
for i in range(2, n 1):fn * ifk 1
for i in range(2, m - n 1):fk * iprint(fm // fn // fk)事实上求N的阶乘我们可以使用Python中的第三方函数库math中的factorial()方法求解
from math import factorial as fac # 此处从math模块导入factorial函数并创建别名 as --- alias ---别名m int(input(m ))
n int(input(n ))print(fac(m) // fac(n) // fac(m - n)) # 调用函数可以直接利用别名题目3输入一个正整数判断它是不是质数只能被1和自身整除的数
实现
a int(input(请输入一个正整数))
is_prime Truefor i in range(2, a):if a % i 0:is_prime Falsebreakif a 1 and is_prime:print(f{a}是质数)
else:print(f{a}不是质数)这里使用了个break语句只要符合条件立马跳出循环。
题目4嵌套循环的使用输出乘法口诀表
实现
for i in range(1, 10):for j in range(1, i 1):print(f{i}×{j}{i * j}, end\t)print() # 换行不需要加/n参数默认换行输出
1×11
2×12 2×24
3×13 3×26 3×39
4×14 4×28 4×312 4×416
5×15 5×210 5×315 5×420 5×525
6×16 6×212 6×318 6×424 6×530 6×636
7×17 7×214 7×321 7×428 7×535 7×642 7×749
8×18 8×216 8×324 8×432 8×540 8×648 8×756 8×864
9×19 9×218 9×327 9×436 9×545 9×654 9×763 9×872 9×981题目5输入三角形三条边的长度如果能构成三角形就计算周长和面积如果不能构成三角形提示用户重新输入直到正确。
实现
import mathwhile True:a float(input(a ))b float(input(b ))c float(input(c ))if a b c and b c a and a c b:perimeter a b chalf perimeter / 2# 海伦公式# area (half * (half - a) * (half - b) * (half - c)) ** 0.5# 调用sqrt函数求平方根area math.sqrt(half * (half - a) * (half - b) * (half - c))print(f三角形的周长{perimeter})print(f三角形的面积{area})breakelse:print(不能构成三角形请重新输入)题目6找出1-10000之间的完美数完美数的意思是指除自身外所有因子的和等于这个数如6123
实现
import timestart time.time()for num in range(2, 10000):total 1for i in range(2, int(num ** 0.5) 1):if num % i 0:total iif i ! num // i:total num // iif num total:print(num)
end time.time()print(f执行时间{end - start:.3f}秒)输出
6
28
496
8128
执行时间0.046秒