【程序 1】
题目:有 1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
if __name__ == '__main__':
count = 0
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
#if(i!=j and j!=k and k!=i):
if (i!=j) and (j!=k) and (k!=i):
count = count +1
num = i*100 + j*10 + k
print(num)
#print('{}'.format(i) + '{}'.format(j) + '{}'.format(k))
print(count)
使用 permutations函数
import itertools
if __name__ == '__main__':
items = "1234"
count = 0
for item in itertools.permutations(items, 3):
count += 1
if count % 4:
print("".join(item), end=" | ")
else:
print("".join(item))
print(count)
【程序 3】
题目:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少?
import math
if __name__ == '__main__':
for i in range(100000):
x = int(math.sqrt(i + 100))
y = int(math.sqrt(i + 168))
if (x * x == (i + 100)) and (y * y == (i + 168)):
print(i)
for i in range(100000):
if math.sqrt(i + 100) - math.floor(math.sqrt(i + 100)) == 0:
if math.sqrt(i + 168) - math.floor(math.sqrt(i + 168)) == 0:
print(i)
【程序 4】
题目:输入某年某月某日,判断这一天是这一年的第几天?
注意:闰年:能被4整除但是不能被一百整除 2、能被四百整除。
闰年的2月份有29天,平年的2月份只有28天。
if __name__ == '__main__':
year = int(input("please input year:"))
month = int(input("please input month:"))
day = int(input("please input day:"))
sum = 0
mon = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334)
if 0 <= month <= 12:
sum = sum + mon[month - 1]
else:
print("month error!")
sum = sum + day
if (year % 400 == 0) or ((year % 100 != 0) and (year % 4 == 0)):
if month > 2:
sum = sum + 1
print("it is %dth day.", sum)
【程序 5】
题目:输入三个整数 x,y,z,请把这三个数由小到大输出。
if __name__ == '__main__':
x = int(input("please input x:"))
y = int(input("please input y:"))
z = int(input("please input z:"))
if(x>y):
if(y>z):
print(z,y,x);
else:
if(x>z):
print(y,z,x);
else:
print(y,x,z);
else:
if(x>z):
print(z,x,y);
else:
if(z>y):
print(x,y,z);
else:
print(x,z,y);
#方法二
if y > x:
if z > y:
z, x = x, z
else:
if x > z:
y, x = x, y
else:
x, y, z = y, z, x
else:
if z > x:
x, y, z = z, x, y
else:
if z > y:
z, y = y, z
print(z, y, x)
【程序 8】
题目:输出 9*9 口诀表。
if __name__ == '__main__':
for i in range(1, 10):
for j in range(1, i+1):
print("{0}*{1}={2:<4}".format(i, j, i*j), end='')
print()
print()
#方式二
thisList = [0] * 9
for inedx in range(9):
thisList[inedx] = list('0' for _ in range(9))
for i in range(1, 10):
for j in range(1, i + 1):
thisList[i - 1][j - 1] = "{0}*{1}={2:<4}".format(j, i, i * j)
for i in range(9):
for j in range(9):
if (thisList[j][i] != '0'):
print(thisList[j][i], end='')
elif (thisList[j][i] == '0'):
print(str(' ' * 8), end='')
print()
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*6=36 6*7=42 6*8=48 6*9=54
7*7=49 7*8=56 7*9=63
8*8=64 8*9=72
9*9=81
【程序 11】
题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
import copy
if __name__ == '__main__':
# 3个月 1成熟 0大 0中 1小
# 4个月 1成熟 0大 1中 1小
# 5个月 1成熟 1大 1中 1小
# 6个月 2成熟 1大 1中 2小
# 7个月 3成熟 1大 2中 3小
# 8个月 4成熟 2大 3中 4小
# 9个月 6成熟 3大 4中 6小
list = [1, 0, 0, 0]
list1 = [0, 0, 0, 0]
sum1 = 0
x = int(input("请输入月份:"))
for i in range(x + 1):
if i < 3:
sum1 = 1
else:
list1[2] = list[3]
list1[1] = list[2]
list1[0] = list[1] + list[0]
list1[3] = list1[0]
list = copy.copy(list1)
print("list1:", list1)
sum1 = sum(list1)
print("兔子总数为:", sum1)
#斐波那契数列
month = int(input('繁殖几个月?: '))
month_1 = 1
month_2 = 0
month_3 = 0
month_elder = 0
for i in range(month):
month_1, month_2, month_3, month_elder = month_elder + month_3, month_1, month_2, month_elder + month_3
print('第%d个月共' % (i + 1), month_1 + month_2 + month_3 + month_elder, '对兔子')
【程序 12】
题目:判断 101-200 之间有多少个素数,并输出所有素数。
素数的定义:只能被1以及自身整除的数
注意!!若x<2,那么x一定不是素数!!,因为最小的素数是2!
if __name__ == '__main__':
l = []
for i in range(101, 200):
for j in range(2, i - 1):
#能被除了一和自身的数整除,说明不是素数
if i % j == 0:
break
else:
l.append(i)
print(l)
print("总数为:%d" % len(l))
【程序 13】
题目:打印出所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如: 153 是一个“水仙花数” ,因为 153=1 的三次方+5的三次方+3的三次方。
if __name__ == '__main__':
count = 0
for i in range(100, 1000):
f = i
# 提取百位数
a = int(f / 100)
# 提取十位数
f -= a * 100
b = int(f / 10)
# 提取个位数
c = f - b * 10
# 判断是否是水仙花数
if a ** 3 + b ** 3 + c ** 3 == i:
print(i,"=","{}**3 + {}**3 + {}**3".format(a,b,c))
count += 1
print("共有 %d 个水仙花数" % count)
【程序 14】
题目:将一个正整数分解质因数。例如:输入 90, 打印出 90=233*5 。
def prime_factor(n):
result = []
if n <=0:
return '请输入为正整数!!!'
if n == 1:
return '1无法被分解'
print(n, '=', end="")
for i in range(2, n + 1):
while n % i == 0: # 能除尽就继续除,除不尽就跳到 for 循环除下一个数
if i == n:
result.append(i)
print(i, end="")
break
result.append(i)
print(i, end="*")
n = n / i
print('')
return result
if __name__ == '__main__':
n = int(input("请输入一个正整数:"))
print(prime_factor(n))