杨辉三角形
问题描述:杨辉三角又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。它的一个重要性质是:三角形中每个数字等于它两肩上的数字相加。
输入格式:输入一个数字n,代表杨辉三角形的行数
输出格式:输出三角形的前n行,每个数字之间用一个空格隔开
答题思路:通过生成一个n行n列的二维列表并进行赋值,再通过循环将结果不为0的数字依次输出。
n
= int(input())
intlist
= [[0 for i
in range(n
)] for j
in range(n
)]
for i
in range(n
):
for j
in range(i
+1):
if j
== 0:
intlist
[i
][j
] = 1
else:
intlist
[i
][j
] = intlist
[i
-1][j
-1] + intlist
[i
-1][j
]
for i
in range(n
):
for j
in range(n
):
if intlist
[i
][j
] != 0:
print(intlist
[i
][j
], end
=" ")
print()
最大最小公倍数
问题描述:已知一个正整数N,问从1~N之间任选三个数,他们的最小公倍数最大可以是多少
输入格式:输入一个正整数
输出格式:输出一个正整数,表示你找到的最小公倍数
解题思路:有三种情况。第一种情况是三个数字互为质数,结果为三个数字之积;第二种情况是如果n是偶数且n不是3的倍数,结果为n*(n-1)(n-3);第三种情况是如果n为偶数且n是3的倍数,结果为(n-1)(n-2)*(n-3)。
while True:
try:
number
= int(input())
if number
%2 == 0 and number
%3 != 0:
product
= number
* (number
-1) * (number
-3)
elif number
%2 == 0 and number
%3 == 0:
product
= (number
-1) * (number
-2) * (number
-3)
else:
product
= number
* (number
-1) * (number
-2)
print(product
)
except:
break
Torry的困惑
问题描述:Torry从小喜欢数学,一天老师告诉他像2,3,5,7….这些数字都是质数。Torry突然想到一个问题,前100,1000,10000…个质数的乘积是多少,老师愣住了,你能计算出质数乘积模上50000的值吗?
输入格式:仅包含一个正整数n,其中n<=100000
输出格式:输出一行,即前n个质数的乘积模50000的值
解题思路:首先判断n的个数是否为1,如果为1,直接输出2;再经过循环选择n个质数内的所有质数并放入列表;最后将列表内所有数字逐个相乘并模50000,输出结果。
while True:
try:
n
= int(input())
f
= list()
count
= 0
if n
== 1:
print(2)
else:
for i
in range(3, 100000):
for j
in range(2, i
):
if i
%j
== 0:
break
elif i
%3 == 0 and i
!= 3:
break
elif i
%5 == 0 and i
!= 5:
break
else:
f
.append
(i
)
count
+= 1
break
if count
== n
:
break
product
= 2
for i
in range(0, n
-1):
product
= f
[i
] * product
print(product
% 50000)
except:
break
字符串对比
问题描述:给定两个仅由大写字母和小写字母组成的字符串(长度介于1-10之间)它们之间的关系是如下4种关系之一:
1:两个字符串长度不相等; 2:两个字符串长度相等且对应位置上的字符也相等(区分大小写); 3:两个字符串长度相等且对应位置上的字符也相等(不区分大小写); 4:两个字符串相等但是不区分大小写对应位置的字符也不相等; 编程判断输入的两个字符串之间的关系属于四类中的哪一类,给出所属类别的编号。
输入格式:包括两行,每行都是一个字符串
输出格式:仅有一个数字,代表两个字符串关系的编号
解题思路:通过四个判断语句得出结果。第一个直接判断长度;第二个判断是否完全一致;第三个通过将两个字符串都小写或大写再进行比较;如果不是以上三种情况,那就属于第四种了。
while True:
try:
m
= list()
for i
in range(2):
m
.append
(input())
if len(m
[0]) != len(m
[1]):
print(1)
elif m
[0] == m
[1]:
print(2)
elif str.lower
(m
[0]) == str.lower
(m
[1]):
print(3)
else:
print(4)
except:
break
图形显示
问题描述:编写一个程序,首先输入一个整数(如5),然后再屏幕上显示出如下图形
输入格式:输入一个整数,代表行数
输出格式:输出图形
解题思路:通过循环输出*的数量递减(使用最简洁的语句输出结果)
while True:
try:
n
= int(input())
for i
in range(n
):
print('* ' * (n
-i
))
except:
break
转载请注明原文地址:https://tech.qufami.com/read-18847.html