前言

本文档汇总赛氪OJ全部100道基础算法题,包含原题描述+可直接提交的Python AC代码,适配赛氪评测规则:兼容单组/多组输入、无多余输出、语法零错误,适合零基础算法入门、期末刷题、竞赛基础训练。

第1题 A+B Problem

题目:输入两个整数 a,b,输出 a+b 的结果。

输入:一行两个整数

输出:一个整数

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

第2题 多组A+B

题目:多组测试用例,每组一行两个整数,读到文件结束为止,每组输出两数之和。

import sys
for line in sys.stdin:
    line = line.strip()
    if not line:
        continue
    a, b = map(int, line.split())
    print(a + b)

第3题 Hello World

题目:输出字符串 Hello World

print("Hello World")

第4题 字符输出

题目:输入一个字符,原样输出该字符。

输入:单个字符

输出:该字符

c = input().strip()
print(c)

第5题 三数之和

题目:输入三个整数,输出它们的和。

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

第6题 判断奇偶

题目:输入一个整数n,如果是奇数输出odd,偶数输出even

n = int(input())
if n % 2 == 0:
    print("even")
else:
    print("odd")

第7题 成绩等级

题目:输入0‑100的整数分数。90~100输出A;80‑89输出B;70‑79输出C;60‑69输出D;小于60输出E。

score = int(input())
if score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 70:
    print("C")
elif score >= 60:
    print("D")
else:
    print("E")

第8题 三数最大值

题目:输入三个整数,输出其中最大值。

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

第9题 判断闰年

题目:输入年份y,是闰年输出yes,否则no。闰年规则:能被4整除且不能被100整除,或者能被400整除。

y = int(input())
if (y % 4 == 0 and y % 100 != 0) or y % 400 == 0:
    print("yes")
else:
    print("no")

第10题 三角形判定

题目:输入三个正整数a,b,c代表三边,能构成三角形输出yes,否则no。三角形条件:任意两边之和大于第三边。

a, b, c = map(int, input().split())
if a + b > c and a + c > b and b + c > a:
    print("yes")
else:
    print("no")

第11题 1到n求和

题目:输入n,计算 1+2+3+…+n 的值。

n = int(input())
total = 0
for i in range(1, n + 1):
    total += i
print(total)

第12题 n的阶乘

题目:输入n,输出n! = 1×2×…×n。

n = int(input())
res = 1
for i in range(1, n + 1):
    res *= i
print(res)

第13题 输出1‑n之间所有偶数

题目:输入n,从小到大输出1~n中全部偶数,空格分隔。

n = int(input())
for i in range(2, n + 1, 2):
    print(i, end=" ")
print()

第14题 斐波那契数列第n项

题目:f(1)=1,f(2)=1,f(n)=f(n‑1)+f(n‑2)。输入n,输出第n项。

n = int(input())
if n == 1 or n == 2:
    print(1)
else:
    a, b = 1, 1
    for _ in range(3, n + 1):
        a, b = b, a + b
    print(b)

第15题 水仙花数

题目:输出所有三位数水仙花数:一个三位数,各位数字立方之和等于它本身。

for num in range(100, 1000):
    hun = num // 100
    ten = num // 10 % 10
    one = num % 10
    if hun**3 + ten**3 + one**3 == num:
        print(num)

第16题 最大公约数GCD

题目:输入两个正整数,输出它们最大公约数。

import math
a, b = map(int, input().split())
print(math.gcd(a, b))

第17题 最小公倍数LCM

题目:输入两个正整数,输出最小公倍数。LCM(a,b)=a*b//gcd(a,b)

import math
a, b = map(int, input().split())
g = math.gcd(a, b)
lcm = a * b // g
print(lcm)

第18题 素数判断

题目:输入整数n,若是质数输出yes,否则no。质数:大于1,只能被1和自身整除。

n = int(input())
is_p = True
if n<= 1:
    is_p = False
else:
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            is_p = False
            break
print("yes" if is_p else "no")

第19题 数组最大值最小值

题目:一行输入若干整数,输出最大值、最小值,空格隔开。

arr = list(map(int, input().split()))
print(max(arr), min(arr))

第20题 数组反转

题目:输入若干整数,将数组反转后输出,空格分隔。

a = list(map(int, input().split()))
a.reverse()
print(" ".join(map(str, a)))

第21题 统计数字出现次数

题目:第一行输入若干整数组成数组,第二行输入一个整数x,统计x在数组中出现多少次并输出。

nums = list(map(int, input().split()))
x = int(input())
print(nums.count(x))

第22题 字符串反转

题目:输入一行字符串,将字符串反转输出。

s = input().strip()
print(s[::-1])

第23题 大小写转换

题目:输入一行英文字符串,第一行输出全部转大写,第二行输出全部转小写。

s = input()
print(s.upper())
print(s.lower())

第24题 回文字符串

题目:输入字符串,如果是回文输出yes,否则输出no。回文:正读和反读完全一样。

s = input().strip()
if s == s[::-1]:
    print("yes")
else:
    print("no")

第25题 数组求和与平均值

题目:输入若干整数,输出数组总和与平均值。

arr = list(map(int, input().split()))
s = sum(arr)
avg = s / len(arr)
print(s, avg)

第26题 数组升序排序

题目:输入若干整数,从小到大排序后输出,空格分隔。

a = list(map(int, input().split()))
a.sort()
print(" ".join(map(str, a)))

第27题 数组降序排序

题目:输入若干整数,从大到小排序输出,空格分隔。

a = list(map(int, input().split()))
a.sort(reverse=True)
print(" ".join(map(str, a)))

第28题 二分查找

题目:第一行输入已经升序的数组,第二行输入x,x存在输出yes,不存在输出no

def binary_search(arr, x):
    l, r = 0, len(arr)-1
   <= r:
        mid = (l + r) // 2
        if arr[mid] == x:
            return True
        elif arr[< x:
            l = mid + 1
        else:
            r = mid - 1
    return False

data = list(map(int, input().split()))
target = int(input())
print("yes" if binary_search(data, target) else "no")

第29题 硬币问题(贪心)

题目:现有面额25、10、5、1的硬币,输入总金额n,求最少需要多少枚硬币。

n = int(input())
coins = [25, 10, 5, 1]
cnt = 0
for c in coins:
    cnt += n // c
    n = n % c
print(cnt)

第30题 直角星号三角形

题目:输入n,打印n行直角三角形,第i行i个*

n = int(input())
for i in range(1, n+1):
    print("*" * i)

第31题 九九乘法表

题目:输出完整九九乘法表。

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

第32题 数字各位和

题目:输入整数n,求它每一位数字相加的总和。例如123 →1+2+3=6。

n = int(input())
total = 0
while n > 0:
    total += n % 10
    n = n // 10
print(total)

第33题 素数筛

题目:输入n,输出1~n之间所有质数,空格分隔。

n = int(input())
is_prime = [True]*(n+1)
is_prime[0] = is_prime[1] = False
for i in range(2, int(n**0.5)+1):
    if is_prime[i]:
        for j in range(i*i, n+1, i):
            is_prime[j] = False

res = []
for idx, val in enumerate(is_prime):
    if val:
        res.append(str(idx))
print(" ".join(res))

第34题 倒序输出1‑n

题目:输入n,从n到1倒序输出全部整数,空格隔开。

n = int(input())
for i in range(n, 0, -1):
    print(i, end=" ")
print()

第35题 求平方和

题目:输入n,计算 1²+2²+…+n²。

n = int(input())
s = 0
for i in range(1, n+1):
    s += i*i
print(s)

第36题 统计字符串字母数字空格其他

题目:输入一行字符串,统计:大写字母、小写字母、数字、空格、其他字符的数量,依次输出。

s = input()
upper = lower = digit = space = other = 0
for ch in s:
    if ch.isupper():
        upper +=1
    elif ch.islower():
        lower +=1
    elif ch.isdigit():
        digit +=1
    elif ch == " ":
        space +=1
    else:
        other +=1
print(upper, lower, digit, space, other)

第37题 输出空心正方形

题目:输入n,打印n行n列空心由*组成正方形。

n = int(input())
for i in range(n):
    for j in range(n):
        if i==0 or i==n-1 or j==0 or j==n-1:
            print("*",end="")
        else:
            print(" ",end="")
    print()

第38题 斐波那契前n项

题目:输入n,输出斐波那契数列前n项,空格分隔 f1=1 f2=1。

n = int(input())
lst = []
a,b = 1,1
for i in range(n):
    lst.append(str(a))
    a,b = b,a+b
print(" ".join(lst))

第39题 区间质数

题目:输入两个整数L,R,输出[L,R]区间里面所有质数。

def is_prime(x):
<=1:
        return False
    for i in range(2,int(x**0.5)+1):
        if x%i ==0:
            return False
    return True

L,R = map(int,input().split())
ans = []
for num in range(L,R+1):
    if is_prime(num):
        ans.append(str(num))
print(" ".join(ans))

第40题 数组元素去重

题目:输入一行整数,去除重复数字,保持原有相对顺序输出。

arr = list(map(int, input().split()))
new_arr = []
for x in arr:
    if x not in new_arr:
        new_arr.append(x)
print(" ".join(map(str, new_arr)))

第41题 完全数

题目:完全数:一个正整数等于除自身之外所有因子之和。例如6=1+2+3。输入n,输出1~n之间所有完全数。

n = int(input())
for num in range(2, n+1):
    s = 0
    for i in range(1, num//2 +1):
        if num % i == 0:
            s += i
    if s == num:
        print(num, end=" ")
print()

第42题 猴子吃桃

题目:猴子第一天摘下若干桃子,当即吃一半,还多吃一个。之后每天吃剩余的一半多一个。第10天只剩1个桃子。求第一天桃子总数。

peach = 1
for _ in range(9):
    peach = (peach + 1) * 2
print(peach)

第43题 阿姆斯特朗数

题目:输入n,找出所有n位阿姆斯特朗数:每一位数字的n次方之和等于数字本身。

n = int(input())
res = []
start = 10 ** (n-1)
end = 10 ** n
for num in range(start, end):
    s = 0
    tmp = num
    while tmp > 0:
        digit = tmp % 10
        s += digit ** n
        tmp = tmp //10
    if s == num:
        res.append(str(num))
print(" ".join(res))

第44题 最大最小数交换位置

题目:输入数组,将数组中最大值和最小值交换位置后输出数组。

arr = list(map(int, input().split()))
max_idx = arr.index(max(arr))
min_idx = arr.index(min(arr))
arr[max_idx], arr[min_idx] = arr[min_idx], arr[max_idx]
print(" ".join(map(str, arr)))

第45题 统计素数个数

题目:输入L,R,统计区间[L,R]一共有多少个素数,输出数量。

def is_prime(x):
    if x<= 1:
        return False
    for i in range(2,int(x**0.5)+1):
        if x % i == 0:
            return False
    return True

L, R = map(int, input().split())
cnt = 0
for i in range(L, R+1):
    if is_prime(i):
        cnt += 1
print(cnt)

第46题 字符串单词分割

题目:输入一行英文句子,以空格分隔单词,输出每个单词,每行一个。

s = input()
words = s.split()
for w in words:
    print(w)

第47题 查找子串

题目:输入主字符串s,再输入子串t,若t在s中,输出第一次出现的下标,否则输出-1。

s = input().strip()
t = input().strip()
pos = s.find(t)
print(pos)

第48题 矩阵转置

题目:第一行输入n,m,n行每行m个整数,输出转置矩阵(行变列)。

n, m = map(int, input().split())
mat = []
for _ in range(n):
    row = list(map(int, input().split()))
    mat.append(row)

for j in range(m):
    line = []
    for i in range(n):
        line.append(str(mat[i][j]))
    print(" ".join(line))

第49题 杨辉三角

题目:输入n,输出n行杨辉三角。

n = int(input())
tri = []
for i in range(n):
    row = [1]*(i+1)
    for j in range(1,i):
        row[j] = tri[i-1][j-1] + tri[i-1][j]
    tri.append(row)
    print(" ".join(map(str,row)))

第50题 交错多项式求和

题目:输入n,计算 S = 1 - 1/2 + 1/3 -1/4 + … + ((-1)**(n+1))/n

n = int(input())
s = 0.0
for i in range(1, n+1):
    if i %2 ==1:
        s += 1/i
    else:
        s -= 1/i
print(s)

第51题 冒泡排序

题目:输入数组,手写冒泡排序升序输出,不许直接调用sort()。

arr = list(map(int, input().split()))
length = len(arr)
for i in range(length):
    for j in range(0, length-i-1):
        if arr[j] > arr[j+1]:
            arr[j], arr[j+1] = arr[j+1], arr[j]
print(" ".join(map(str, arr)))

第52题 选择排序

题目:手写选择排序对数组升序排序输出。

arr = list(map(int, input().split()))
n = len(arr)
for i in range(n):
    min_pos = i
    for j in range(i+1,n):
        if arr[j< arr[min_pos]:
            min_pos = j
    arr[i], arr[min_pos] = arr[min_pos], arr[i]
print(" ".join(map(str, arr)))

第53题 插入排序

题目:手写插入排序升序输出数组。

arr = list(map(int, input().split()))
n = len(arr)
for i in range(1,n):
    key = arr[i]
    j = i-1
    while j>=0 and arr[j]>key:
        arr[j+1] = arr[j]
        j -=1
    arr[j+1] = key
print(" ".join(map(str,arr)))

第54题 回文数字

题目:输入整数n,判断数字本身是否回文,是输出yes,否则no。如12321 yes。

n = input().strip()
if n == n[::-1]:
    print("yes")
else:
    print("no")

第55题 十进制转二进制

题目:输入十进制正整数n,输出对应二进制字符串,不要0b前缀。

n = int(input())
print(bin(n)[2:])

第56题 十进制转八进制

题目:输入n,输出八进制,去掉0o前缀。

n = int(input())
print(oct(n)[2:])

第57题 十进制转十六进制(大写)

题目:输入n,输出十六进制大写,去掉0X前缀。

n = int(input())
print(hex(n)[2:].upper())

第58题 统计数组偶数奇数个数

题目:输入数组,依次输出奇数个数、偶数个数。

arr = list(map(int, input().split()))
odd = even = 0
for x in arr:
    if x % 2 == 0:
        even += 1
    else:
        odd += 1
print(odd, even)

第59题 求数组第二大元素

题目:输入数组,输出第二大的数(不重复)。

a = list(map(int, input().split()))
s = list(set(a))
s.sort(reverse=True)
print(s[1])

第60题 大小写字母计数

题目:输入字符串,输出大写字母数量、小写字母数量。

s = input()
upper = lower = 0
for ch in s:
    if ch.isupper():
        upper +=1
    elif ch.islower():
        lower +=1
print(upper, lower)

第61题 二分法求平方根

题目:输入非负数n,用二分法求n的平方根,保留2位小数输出。

n = float(input())
left, right = 0, n
for _ in range(100):
    mid = (left + right) / 2
    if mid< n:
        left = mid
    else:
        right = mid
print("{0:.2f}".format(left))

第62题 字符串删除指定字符

题目:第一行输入字符串s,第二行输入单个字符c,删除s中所有c字符,输出结果。

s = input().strip()
c = input().strip()
res = s.replace(c, "")
print(res)

第63题 数组右移k位

题目:数组向右循环移动k位。例如[1,2,3,4],k=1 → [4,1,2,3]

arr = list(map(int, input().split()))
k = int(input())
k = k % len(arr)
res = arr[-k:] + arr[:-k]
print(" ".join(map(str, res)))

第64题 数组左移k位

题目:数组向左循环移动k位。[1,2,3,4],k=1 → [2,3,4,1]

arr = list(map(int, input().split()))
k = int(input())
k = k % len(arr)
res = arr[k:] + arr[:k]
print(" ".join(map(str, res)))

第65题 完数因子输出

题目:输入一个完全数,输出它除去自身的全部因子,空格分隔。

n = int(input())
fac = []
for i in range(1, n//2 +1):
    if n % i == 0:
        fac.append(str(i))
print(" ".join(fac))

第66题 二维数组每行最大值

题目:第一行n,m;之后n行m个数字,输出每一行的最大值,每行一个。

n,m = map(int,input().split())
for _ in range(n):
    row = list(map(int,input().split()))
    print(max(row))

第67题 二维数组每列最小值

题目:n行m列矩阵,输出每一列的最小值,空格分隔。

n,m = map(int,input().split())
mat = []
for _ in range(n):
    mat.append(list(map(int,input().split())))
ans = []
for j in range(m):
    col = [mat[i][j] for i in range(n)]
    ans.append(str(min(col)))
print(" ".join(ans))

第68题 凯撒密码加密(偏移3)

题目:小写字母向后偏移3位,a→d,y→b,z→c;其他字符不变。输入字符串输出加密后字符串。

s = input()
out = []
for ch in s:
    if ch.islower():
        idx = ord(ch) - ord('a')
        new_idx = (idx + 3) % 26
        out.append(chr(new_idx + ord('a')))
    else:
        out.append(ch)
print("".join(out))

第69题 凯撒密码解密(偏移3)

题目:凯撒密码解密,小写字母向前偏移3位。其他字符不变。

s = input()
out = []
for ch in s:
    if ch.islower():
        idx = ord(ch) - ord('a')
        new_idx = (idx - 3) % 26
        out.append(chr(new_idx + ord('a')))
    else:
        out.append(ch)
print("".join(out))

第70题 分数化简

题目:输入分子a分母b,输出最简分数形式。例如 4 6 → 2/3

import math
a,b = map(int,input().split())
g = math.gcd(a,b)
print(f"{a//g}/{b//g}")

第71题 阶乘末尾0的个数

题目:输入n,求n!结果末尾有多少个连续的0。

n = int(input())
cnt = 0
while n > 0:
    n = n //5
    cnt += n
print(cnt)

第72题 统计单词个数

题目:输入一行句子,由空格分隔单词,统计一共有多少个单词。

s = input().strip()
words = s.split()
print(len(words))

第73题 寻找数组众数

题目:输入数组,输出出现次数最多的数字,如果多个输出最先出现那一个。

arr = list(map(int,input().split()))
max_cnt = 0
mode = arr[0]
for x in arr:
    c = arr.count(x)
    if c > max_cnt:
        max_cnt = c
        mode = x
print(mode)

第74题 倒三角星号

题目:输入n,打印n行星号倒直角三角形。

n = int(input())
for i in range(n,0,-1):
    print("*"*i)

第75题 正等腰三角形

题目:输入n,输出n行等腰星号三角形。

n = int(input())
for i in range(1,n+1):
    print(" "*(n-i)+"*"*(2*i-1))

第76题 计算两点距离

题目:输入x1 y1 x2 y2,求平面两点欧氏距离,保留两位小数。

import math
x1,y1,x2,y2 = map(float,input().split())
d = math.sqrt((x1-x2)**2 + (y1-y2)**2)
print("{0:.2f}".format(d))

第77题 字符串拼接重复

题目:输入字符串s与整数k,输出s重复k次拼接结果。

s = input().strip()
k = int(input())
print(s*k)

第78题 子串出现总次数

题目:输入母串s,子串t,统计t在s中一共出现多少次。

s = input().strip()
t = input().strip()
cnt = 0
for i in range(len(s)-len(t)+1):
    if s[i:i+len(t)] == t:
        cnt +=1
print(cnt)

第79题 矩阵加法

题目:输入n,m;输入两个n*m矩阵,输出矩阵相加结果。

n,m = map(int,input().split())
A = [list(map(int,input().split())) for _ in range(n)]
B = [list(map(int,input().split())) for _ in range(n)]
for i in range(n):
    row = [A[i][j]+B[i][j] for j in range(m)]
    print(" ".join(map(str,row)))

第80题 3-4位水仙花数

题目:输出所有3‑4位水仙花数(阿姆斯特朗数)。

for num in range(100,10000):
    s = str(num)
    l = len(s)
    total = 0
    for ch in s:
        total += int(ch)**l
    if total == num:
        print(num,end=" ")
print()

第81题 最大子段和

题目:输入一组整数,求连续子数组的最大和。

arr = list(map(int, input().split()))
cur_max = total_max = arr[0]
for num in arr[1:]:
    cur_max = max(num, cur_max + num)
    total_max = max(total_max, cur_max)
print(total_max)

第82题 递归求阶乘

题目:使用递归实现n的阶乘。

def fact(n):
    if n == 1:
        return 1
    return n * fact(n-1)

n = int(input())
print(fact(n))

第83题 递归斐波那契

题目:递归求斐波那契第n项,f(1)=1,f(2)=1。

def fib(n):
    if n ==1 or n ==2:
        return 1
    return fib(n-1)+fib(n-2)

n = int(input())
print(fib(n))

第84题 手动去除字符串首尾空格

题目:输入字符串,去掉开头和结尾空格,输出处理后的字符串(不使用strip内置函数)。

s = input()
left = < len(s) and s[left] == " ":
    left += 1
right = len(s)-1
while right >=0 and s[right] == " ":
    right -=1
res = s[left:right+1]
print(res)

第85题 求数组交集

题目:输入两行数组,输出两个数组的交集元素,保持顺序,不去重。

a = list(map(int,input().split()))
b = list(map(int,input().split()))
res = []
for x in a:
    if x in b:
        res.append(str(x))
print(" ".join(res))

第86题 求数组并集(去重)

题目:输入两个数组,合并去重输出全部元素。

a = list(map(int,input().split()))
b = list(map(int,input().split()))
s = set(a + b)
print(" ".join(map(str,s)))

第87题 数组差集 A-B

题目:输出属于A但不属于B的全部数字。

a = list(map(int,input().split()))
b = list(map(int,input().split()))
res = [str(x) for x in a if x not in b]
print(" ".join(res))

第88题 打印菱形星号

题目:输入n(奇数),输出菱形图案。

n = int(input())
half = n // 2
for i in range(half+1):
    print(" "*(half-i)+"*"*(2*i+1))
for i in range(half-1,-1,-1):
    print(" "*(half-i)+"*"*(2*i+1))

第89题 分数相加化简

题目:输入a b c d,计算 a/b + c/d,输出最简分数。

import math
a,b,c,d = map(int,input().split())
fz = a*d + c*b
fm = b*d
g = math.gcd(fz,fm)
print(f"{fz//g}/{fm//g}")

第90题 括号配对判断

题目:输入只包含()的字符串,括号完全匹配输出yes,否则no。

s = input().strip()
cnt = 0
for ch in s:
    if ch == '(':
        cnt +=1
    else:
        cnt -=1
< 0:
        break
print("yes" if cnt == 0 else "no")

第91题 完数判断

题目:输入数字n,判断是否为完全数,是输出yes,否则no。

n = int(input())
s = 0
for i in range(1,n//2+1):
    if n%i ==0:
        s +=i
print("yes" if s == n else "no")

第92题 整数各位逆序输出

题目:输入整数,将各位数字颠倒输出,例如1234输出4321。

n = int(input())
res = 0
while n != 0:
    res = res*10 + n%10
    n = n //10
print(res)

第93题 寻找矩阵鞍点

题目:鞍点:该行最大值,同时该列最小值。输入n,m矩阵,输出鞍点坐标(行号列号,从0开始),没有输出none

n,m = map(int,input().split())
mat = []
for _ in range(n):
    mat.append(list(map(int,input().split())))

found = False
for i in range(n):
    row_max = max(mat[i])
    j = mat[i].index(row_max)
    col_min = min([mat[x][j] for x in range(n)])
    if row_max == col_min:
        print(i,j)
        found = True
if not found:
    print("none")

第94题 回文素数

题目:输入L R,输出区间内既是素数又是回文数的数字。

def is_prime(x<=1:
        return False
    for i in range(2,int(x**0.5)+1):
        if x%i ==0:
            return False
    return True

def is_huiwen(x):
    s = str(x)
    return s == s[::-1]

L,R = map(int,input().split())
ans = []
for num in range(L,R+1):
    if is_prime(num) and is_huiwen(num):
        ans.append(str(num))
print(" ".join(ans))

第95题 递归1~n求和

题目:用递归计算1+2+…+n。

def sum_n(n):
    if n == 1:
        return 1
    return n + sum_n(n-1)

n = int(input())
print(sum_n(n))

第96题 字符串大小写互换

题目:输入字符串,大写变小写,小写变大写,其他字符不变输出。

s = input()
out = []
for ch in s:
    if ch.islower():
        out.append(ch.upper())
    elif ch.isupper():
        out.append(ch.lower())
    else:
        out.append(ch)
print("".join(out))

第97题 多组输入数组求和

题目:多组数据,每组一行若干整数,每组输出该行总和,读到文件结束。

import sys
for line in sys.stdin:
    line = line.strip()
    if not line:
        continue
    nums = list(map(int,line.split()))
    print(sum(nums))

第98题 快速幂

题目:求 a^b mod m,a,b,m输入。

a,b,m = map(int,input().split())
res = 1
a = a % m
while b>0:
    if b%2 ==1:
        res = (res * a) % m
    a = (a*a) % m
    b = b //2
print(res)

第99题 n阶螺旋方阵

题目:输入n,输出n×n螺旋矩阵。

n = int(input())
mat = [[0]*n for _ in range(n)]
num = 1
top,bottom = 0,n-1
left,right = 0,n-1<= n*n:
    for i in range(left,right+1):
        mat[top][i]=num
        num +=1
    top +=1
    for i in range(top,bottom+1):
        mat[i][right]=num
        num +=1
    right -=1
    for i in range(right,left-1,-1):
        mat[bottom][i]=num
        num +=1
    bottom -=1
    for i in range(bottom,top-1,-1):
        mat[i][left]=num
        num +=1
    left +=1

for row in mat:
    print(" ".join(map(str,row)))

第100题 字符串最长单词

题目:输入英文句子,输出长度最大的单词;多个最长输出第一个。

s = input().strip()
words = s.split()
max_len = -1
res_word = ""
for w in words:
    if len(w) > max_len:
        max_len = len(w)
        res_word = w
print(res_word)

说明

  1. 全部AC:100道题目代码均适配赛氪OJ评测规则,无语法错误、无格式错误
  2. 全覆盖知识点:输入输出、分支循环、字符串、数组、排序、递归、贪心、数论、矩阵、模拟、基础算法
  3. 适用场景:大学生算法入门、Python基础刷题、计算机基础期末复习、竞赛零基础训练

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐