1.求1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的和
求1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的和
输入格式:
输入一个整数。
输出格式:
输出所求的和。
代码如下:
n=int(input())
sum=0
for i in range(1,n+1):
for j in range(1,i+1):
sum=sum+j
print("sum = %d" %sum)
2.最大公因数与最小公倍数
求两个正整数 a,b 的最大公因数与最小公倍数。
两个数的最大公因数指的是 a,b 共有的约数中最大的一个。
两个数的最小公倍数指的是 a,b 共有的倍数中最小的一个。
输入格式:
在一行中给出两个数字 a,b (1<=a,b<=1,000,000,000)
输出格式:
在一行中以空格分隔输出 a,b 的最大公因数与最小公倍数。
代码如下:
def gcd(a, b):
if a % b == 0:
return b
else:
return gcd(b, a % b)
n, m = input().split()
n = int(n)
m = int(m)
print('{:d} {:d}'.format(gcd(n, m), n*m//gcd(n, m)))
3.水仙花数
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 例如:153=1×1×1+5×5×5+3×3×3。
本题要求编写程序,计算所有N位水仙花数。
输入格式:
输入在一行中给出一个正整数N(3≤N≤5)
输出格式:
按递增顺序输出所有N位水仙花数,每个数字占一行。
代码如下:
n=int(input())
for i in range(10**(n-1),10**(n)):
sum=0
for p in str(i):
sum+=(int(p))**n
if sum==i:
print(i)
4.穷举问题-搬砖
某工地需要搬运砖块,已知男人一人搬3
块,女人一人搬2
块,小孩两人搬1
块。如果想用n
人正好搬n
块砖,问有多少种搬法?
输入格式:
输入在一行中给出一个正整数n
。
输出格式:
输出在每一行显示一种方案,按照"men = cnt_m, women = cnt_w, child = cnt_c
"的格式,输出男人的数量cnt_m
,女人的数量cnt_w
,小孩的数量cnt_c
。请注意,等号的两侧各有一个空格,逗号的后面也有一个空格。
如果找不到符合条件的方案,则输出"None
"
代码如下:
n=int(input())
count=0
for cnt_m in range (n):
for cnt_w in range (n):
for cnt_c in range (n):
if ((cnt_m + cnt_w + cnt_c == n) and (cnt_m * 3 + cnt_w * 2 + cnt_c*0.5 == n)):
count+=1
print(f'men = {cnt_m}, women = {cnt_w}, child = {cnt_c}')
if(count==0):
print('None')
5.显示指定范围内的素数
输入整数m,将所有大于1小于整数m的素数存入所指定的数组中(数组最多只存放100个素数,超过则提示“OVERFLOW”),输出各素数——若输入的m≤2,则提示“NO”,程序终止。注:素数(Prime Number),亦称质数,指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
输入格式:
输入一个非0的整数。
输出格式:
素数的输出格式为每个素数5列宽、右对齐、每行显示15个。
代码如下:
m=int(input())
if m<=2:
print("NO")
else:
list=[]
for i in range(2,m):
if i >1:
for j in range(2,i):
if i%j==0:
break
else:
list.append(i)
if len(list)>100:
print("OVERFLOW")
else:
o=0
for p in list:
q=str(p)
print("%5d"%p,end="")
o=o+1
if o%15==0:
print("\n",end="")
6.泰勒展开式求sinx近似值
用泰勒展开式求sinx近似值的多项式为:
输入x求sinx的近似值,要求误差不大于0.00001。
输入格式:
直接输入一个实型数据。没有其它任何附加字符。
输出格式:
直接输出保留3位小数的实型结果。
代码如下:
import math
x=float(input())
a=x
b=1
f=1
n=f*(a/b)
i=1
sum=n
while math.fabs(n)>1e-5:
i=i+2
a=x**i
b=b*(i-1)*i
f=f*(-1)
n=f*a/b
sum=sum+n
print("%.3f"%sum)