算法专项-基础100题

佚名 / 2024-08-31 / 原文

题目1:求和

a,b=map(int,input().split())
print(a+b)

题目2:偶数奇数打印

list=[]
for i in range(1,100):
    if i%2==0:#if%2!=表示奇数
        list.append(i)
for i in list:#list转换为str
    print(i,end=' ')

题目3:偶数奇数求和

sum=0
for i in range(1,100):
    if i%2==0:
        sum+=i
print(sum)

题目4:判断素数

(1)素数就是除了1和本身之外无其他自然数整除;算法核心就是判断该自然数是否能被除1和本身之外的其他数整除

a=int(input())
for i in range(2,a+1):
    if a%i==0:
        print("不是素数")
    else:
        print("是素数")
    break

题目5:求阶乘

#非递归
a=int(input())
sum=1
for i in range(1,a+1):
    sum*=i
print(sum)

题目5:求圆面积和周长

import math
r=int(input())
pi = math.pi
a=pi*r*2
s=pi*r**2
print("面积:%.2f"%a)
print("周长:%.2f"%s)

题目6:求三角斜边长

import math
a,b=map(int,input().split())
c=math.sqrt(a**2+b**2)
print(int(c))

题目7:排序

a,b,c=map(int,input().split())
list=[a,b,c]
list1=sorted(list)
for i in list1:
    print(i,end=' ')

题目8:找出区间内素数

(1)区间为[a,b]

def prinme(n):
    flag = True#默认认为为素数
    for i in range(2, n):
        if n % i == 0:
            flag = False
            break
    return flag

a,b = map(int, input().split())
list=[]
for i in range(a,b+1):
    if prinme(i):
        list.append(i)
print(list)

题目9:组合数字

(1)四个数字组合成互不重复的三位数字;就是嵌套三层循环分别表示不同的位置;然后进行排列组合

for i in range(1,5):
    for j in range(1,5):
        for m in range(1,5):
            if i!=j and i!=m and j!=m:
                print(i,j,m)

题目10:"99乘法表"

(1)核心就是根据乘法表的特性进行编写(第一行有1列;第二行有2列;以此类推)

for i in range(1,10):
    print()
    for j in range(i):
        print(f"{i}*{j}={i*j}",end=" ")

题目11:水仙花数

(1)水仙花数是一个三位数;各位数立方之和等于该数本身

for i in range(100, 1000):
    a = i % 10          # 获取个位数字
    b = (i % 100) // 10 # 获取十位数字
    c = i // 100        # 获取百位数字
    if a*a*a + b*b*b + c*c*c == i:
        print(f"水仙花数:{i}")

题目12:反向输出四位数

a,b,c,d = map(int,input().split())
list=[a,b,c,d]
list1=list[::-1]
for i in list1:
    print(i,end=' ')

题目13:输入字符;判断是否为字母

a=input
result=a.isalpha()
if result:
    print("是字母")
else:
    print("不是字母")

题目14:判断三角形

a<=0 or b<=0 or c<=0 #数据不合法
a+b>c and a+c>b and b+c>a #满足条件

题目15:判断完数

(1)特征:这个数恰好等于除了它之外的因子之和

for i in range(1,1000):#1000以内的数
    sum=0
    for j in range(1,i):#除了它之外的因子
        if i%j==0:
            sum+=j
    if sum==i:
        print(i)

题目16:海伦公式

a,b,c = map(int,input().split())
p=(a+b+c)/2
s=((p*(p-a)*(p-b)*(p-c))**0.5)
print(s)
#或者使用math.sqrt代替**0.5

题目17:判断某年某天

import datetime
year, month, day = map(int, input("请输入日期(格式:YYYY-MM-DD): ").split('-'))
yuandan =datetime.datetime(year, 1, 1)
now = datetime.datetime(year,month,day)
days = (now - yuandan).days
print("距离元旦还有{}天".format(days))

题目18:斐波那切数列

(1)[1,1,2,3,5,8,13....]

list=[1,1]
for i in range(1,10):
    list.append(list[-1]+list[-2])
print(list)

题目19:列表复制

(1)将一个列表的数据复制到另一个列表当中

#直接复制法-浅复制
#深复制
import copy
list=[1,2,3,4]
list1=copy.copy[list]

题目20:暂停后输出

import time
time.sleep(5)#程序休眠5秒
print("gsupl")

题目21:成绩if语句

score=int(input("请输入成绩"))
if score>=90:
    print("A")
elif 60<=score<90:
    print("B")
else:
	print("C")

题目22:统计字符

string=input("请输入字符串")
char=0
number=0
space=0
other=0
for i in string:
    if i.isalpha():
        char+=1
    elif i.isdigit():
        number+=1
    elif i.isspace():
        space+=1
    else:
        other+=1
print(f"{char}{space}{number}{other}")

题目23:落体反弹问题

n=100#初始高度
count=0#计数器
list=[]#存放高度的列表
while count<10:
    if count==0:
        list.append(n)
        count+=1
        continue
    else:
        n=n/2
        list.append(n)
        count+=1

print(list)#输出高度的列表

题目24:猴子吃桃问题

(1)猴子第一天摘了若干个桃子;第一天吃了一半+1;以此类推;到第10天早上剩一个桃子了!

#逆推过程成就是当前的桃子+1乘2
sum=1#初始桃子的数量
for i in range(1,10):#表示1-9天的天数
    total=(sum+1)*2
    sum=total
print(sum)

题目25:指定数列的和

(1)1/2 3/2 5/3 8/5 13/8 21/13;求前20项的和;分子分母分开进行计算

sum=0
up=2
down=1
for i in range(20):
    sum+=up/down
    t=down
    down=up
    up=up+t
print(sum)

题目26:求乘阶和

(1)1!+2!+3!+...+20!的和

import math
sum=0
for i in range(1,21):
    sum+=math.factorial(i)
print(sum)

题目27:年龄急转弯

#递归函数
def func(n):
    if n==1:
        return 10
    else:
        return func(n-1)+2

print(func(5))

题目28:判断回文数

(1)特征:正序和反序相同

a=input("请输入字符串:")
a=str(a)
b=a[::-1]
if a==b:
    print("是回文串")
else:
    print("不是回文串")

题目29:判断星期几

#简单的循环判断

题目30:相反列表输出

#方法1;使用reverse()方法-->list.reverse()
#方法2:使用切片进行反转-->list1=list[::-1]

陆续更新