最近整理了一些比较基本的小算法,供大家参考
1.把一元的钞票换成一份二分和五分(每种至少一枚)有多少种换法?
iter = 0
for i in range(1,20):
for j in range(1,48):
one=100-5*i-2*j
if one >= 1:
iter+=1
print("五分:{}个".format(i))
print("二分:{}个".format(j))
print("一分:{}个".format(one))
print(iter)
输出结果:
2.求数组的最大值并写入文档
a=[3,4,34,23,56,766,2,44,55,76,876,5,28]
print(max(a))
with open('a2.txt','w') as f:
f.write(str(max(a)))
输出结果:
3.求1-100内不能被3整除的数
for i in range(101):
if(i%3 !=0):
print(i)
输出结果(随机截取一段结果):
4.判断某年是否是闰年
def year(years):
if years%400 == 0 or (years%4 == 0 and years%100!=0):
print(years,"是闰年")
else:
print(years, "不是闰年")
year(2020)
输出结果:
5.键盘输入5个数并求和
print("-----请输入五个数-----")
str = input("请输入数值,并用空格隔开")
lst1 = str.split(" ")
total = 0
for i in range(len(lst1)):
total += float(lst1[i])
print(total)
输出结果:
6.输入n个数计算平均值,将平均值和大于平均值的数写道文本a1.txt中
str_ = input("请输入数值并用空格隔开" +'\n')
lst = str_.split(" ")
total = 0
for i in range(len(lst)):
total += float(lst[i])
avg = total / len(lst)
print("avg = %f" % avg)
gt = []
for _,j in enumerate(lst):
if float(j) > avg:
gt.append(j)
greatthan = 'great than average num is = ' + str(gt) + '\n'
jieguo = 'average = ' + str(avg)
with open('a1.txt', 'w') as f:
f.write(greatthan)
f.write(jieguo)
结果输出:
写入文档的数:
7.输入三个学生的四门成绩,求每个学生的总分和平均分并输出,结果保留一位小数。
def fun(num):
stu = input("请输入第" + str(num+1) + "个学生的成绩并用空格隔开" + '\n')
lst = stu.split(" ")
total = 0
for i in range(len(lst)):
total += float(lst[i])
print("total = %.1f" % total)
avg = total / len(lst)
print("avg = %.1f" % avg)
for i in range(3):
fun(i)
结果输出:
8.一百个铜钱买了一百只鸡,其中公鸡一只5钱,母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡,母鸡,小鸡各多少?
iter = 0
for i in range(1,19):
for j in range(1,31):
one=100-i-j
if (i+j+one==100 and 5*i+3*j+one/3==100):
iter+=1
print("公鸡有:"+str(i)+"个")
print("母鸡有:"+str(j)+"个")
print("小鸡有:"+str(one)+"个")
print("总共有"+str(iter)+"种可能")
结果输出:
9.冒泡法对十个数排序
num = []
print("请输入十个数:")
for i in range(10):
print("请输入第%d个数:"%i)
a = input()
num.append(int(a))
print(num)
for i in range(9):
for j in range(9 - i):
if num[j] > num[j+1]:
num[j],num[j+1]=num[j+1],num[j]
print(num)
输出结果:
10.选择排序法
a=[5,9,45,6,89,12,8,1]
n=len(a)
for i in range(n-1):
min_index=i
for j in range(i+1,n):
if a[j]<a[min_index]:
min_index=j
if min_index!=i:
a[i],a[min_index]=a[min_index],a[i]
print(a)
输出结果:
11.当n取100时,求表达式的值,1-2+3-4+......+n
sum = 0
for i in range(1,101):
if i%2==0:
sum =sum-i
else:
sum +=i
print(sum)
输出结果:
12.计算Fibonacci数列:1,1,2,3,5,8,13......的前40项。
fib = [1,1]
num = input('How many Fibonacci numbers you want')
for i in range(int(num)-2):
fib.append(fib[-2]+fib[-1])
print(fib)
输出部分结果: