OJ答案
1971 字
10 分钟
OJ答案

为造福同学 将OJ中Python课程答案公布于此
OJ网址:https://oj.nsfz.net
章节1:输入、输出及赋值
1120 nsfz欢迎你
print('nsfz')print('欢迎你')1381 你的名字
name = input()print('你好', name)1119 A+B问题
a = int(input())b = int(input())print(a + b)章节2:顺序结构
1003 混合运算
a, b=map(int, input().split())print((a + b) * (a - b))1001 求一个数的立方
a = int(input())print(a ** 3)1008 求长方形面积和周长
a, b = map(int, input().split())print(a * b, (a + b) * 2)1122 计算线段长度
x1, y1 = map(int, input().split())x2, y2 = map(int, input().split())distance = ((x1 - x2) ** 2 + (y1 - y2) ** 2) ** 0.5print('%.3f'%distance)254 细菌繁殖
a = int(input())print(10 * (2 ** (a - 1)))1007 求商和余数
a, b = map(int, input().split())print(a // b, a % b, end=' ')print('%.1f'%(a / b))1133 分离数位
x = int(input())a = x // 100b = x // 10 % 10c = x % 10print(a, b, c)255 鸡兔同笼
a = int(input())b = int(input())print(2*a-b//2, b//2-a)256 分糖果
a = list(map(int, input().split()))
for i in range(5): a[(i + 4) % 5] += a[i] // 3 a[(i + 1) % 5] += a[i] // 3 a[i] //= 3
print(a[0], a[1], a[2], a[3], a[4])257 是0?是1?
a, b, c = map(int, input().split())condition = a % 2 == 1 and b % 2 == 1 and c % 2 == 1print(int(condition))章节3:关系、逻辑运算与选择语句
1012 判断奇偶数
x = int(input())
if x % 2 == 0: print('是')else: print('不是')1014 两数比大小
a, b = map(int, input().split())
if a > b: print(a)else: print(b)1018 恐龙园买门票
h = float(input())
if h < 1.3: print(60)else: print(120)1130 心系南方灾区
from math import ceila,b = map(int, input().split())print(ceil(a/b))1013 判断闰年
a = int(input())
if a % 400 == 0 or (a % 4 == 0 and a % 100 != 0): print('RUN!')else: print('NO RUN!')267 左邻右舍
n, x = map(int, input().split())
a, b = x - 1, x + 1if a == 0: a = nif b == n + 1: b = 1print(min(a, b), max(a, b))1366 出租车计费
w = float(input())
if w <= 3: print('8.0')elif w <= 10: print('%.1f'%(8+(w-3)*1.8))else: print('%.1f'%(8+7*1.8+(w-10)*2.4))1010 三个数的大小关系
a, b, c = map(int, input().split())
if a < b < c: print('Yes')else: print('No')1370 BMI指数
a, b = map(float, input().split())
x = b / (a * a)if x <= 18.4: print('偏瘦')elif x <= 23.9: print('正常')elif x <= 27.9: print('过重')else: print('肥胖')272 加油卡充值
n = int(input())
if n >= 5000: print('%.2f'%(n+n*0.05))elif n >= 3000: print('%.2f'%(n+n*0.04))elif n >= 1000: print('%.2f'%(n+n*0.03))else: print('%.2f'%n)266 **解方程
ss13 **统计每月天数
l1 = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]l2 = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
a, b = map(int, input().split())if a % 400 == 0 or a % 4 == 0 and a % 100 != 0: print(l2[b])else: print(l1[b])章节4:循环语句for
1436 输出多行******
n = int(input())for i in range(n): print('******')1437 输出n个自然数
n = int(input())for i in range(1, n + 1): print(i, end=' ')1020 求解1+2+3+…+n
n = int(input())print(n * (n + 1) // 2)1021 求1+3+5+…+n
n = int(input())print((1 + n) * ((n - 1) // 2 + 1) // 2)1022 求2+4+6+…+n
n = int(input())print((2 + n) * ((n - 2) // 2 + 1) // 2)1023 求1+1/2+1/3+…+1/n
n = int(input())ans = 0.0for i in range(1, n + 1): ans += 1 / iprint('%.3f'%ans)1025 求1*1+2*2+…+n*n
n = int(input())ans = 0for i in range(1, n + 1): ans += i ** 2print(ans)1124 分别求奇数和偶数和
n = int(input())ans1, ans2 = 0, 0for i in range(n): t = int(input()) if t % 2 == 0: ans2 += t else: ans1 += t;print(ans1)print(ans2)1382 求约数和
n = int(input())ans = 0for i in range(1, n + 1): if n % i == 0: ans += iprint(ans)1026 求n!
n = int(input())ans = 1for i in range(1, n + 1): ans *= iprint(ans)1131 **判奇偶求和
n = int(input())ans = 0if n % 2 == 1: for i in range(1, n + 1): if i % 2 == 0: ans += ielse: for i in range(1, n + 1): if n % i == 0: ans += iprint(ans)1027 **求1!+2!+…+n!
def factorial(n: int): ans = 1; for i in range(1, n + 1): ans *= i return ans
n = int(input())ans = 0for i in range(1, n + 1): ans += factorial(i)print(ans)273 **住宿费
n = int(input())if n % 4 == 1: print((n // 4 - 2)* 140 + 3 * 120)elif n % 4 == 2: print((n // 4 - 1) * 140 + 2 * 120)elif n % 4 == 3: print((n // 4) * 140 + 120)else: print(n // 4 * 140)章节5:循环语句while
1442 理财
n = 1.0t = 0while True: n *= 1.035 t += 1 if n >= 2: print(t) break1443 折纸的厚度
i = 1while 0.00008 * (2 ** i) <= 8844.43: i += 1print(i)1126 求1+1/2+1/3+…+1/n>X的n最小值
n = int(input())s = 0for i in range(1, 100000000): s += 1 / i if s > n: print(i) break1132 至少多少
n = int(input())s = 0for i in range(1, 10000000): s += i * 2 - 1 if s >= n: print(i) break1125 角谷猜想
n = int(input())step = 0while n != 1: if n % 2 == 0: n //= 2 else: n = n * 3 + 1 step += 1print(step)1444 统计整数个数
ans = 0while True: n = int(input()) if n == 0: break ans += 1print(ans)1367 根据AQI值判断城市的空气质量
while True: n = int(input()) if n == -1: exit(0) if n <= 100: print('优良') else: print('污染')1439 辗转相除法求最大公约数
import matha, b = map(int, input().split())print(math.gcd(a, b))1445 求最大公约数
from math import gcd
a, b, c = map(int, input().split())
print(gcd(gcd(a, b), c))1445 求最大公约数
import matha , b = map(int, input().split())print(a * b // math.gcd(a, b))1369 **猜数游戏
此题无法提交 不用写
章节6:列表list
1052 排序输出
l = []while True: s = input() if int(s) == -1: break l.append(int(s))
l.sort()
for i in l: print(i)exit(0)1435 评委评分
n = int(input())l = []for i in range(n): l.append(int(input()))
l.sort()
print(sum(l[1:-1]) / (n - 2))282 统计数字个数
s = input()
l = [0 for i in range(10)]
for c in s: l[ord(c) - ord('0')] += 1
print(' '.join(map(str, l)))1051 求平均年龄
l = []while (n := int(input())) != 0: l.append(n)
print('%.2f'%(sum(l) / len(l)))1438 求平均身高
n = int(input())l = []for i in range(n): l.append(float(input()))
print('%.2f'%(sum(l) / len(l)))1050 寻找数m
l = map(int, input().split())m = int(input())ans = 0for i in l: if i == m: ans += 1print(ans)章节7:自定义函数
1446 组合数
def fac(n): s = 1 for i in range(1, n + 1): s *= i return sn, m = map(int, input().split())print(fac(n) // fac(m) // fac(n - m))1112 绝对素数
def is_prime(n: int): i = 2 while i ** 2 <= n: if n % i == 0: return False i += 1 return True
for i in range(11, 100): if is_prime(i) and is_prime(int(''.join(reversed(str(i))))): print(i)1129 求三角形周长
def dist(x1, y1, x2, y2): return ((x1 - x2) ** 2 + (y1 - y2) ** 2) ** 0.5
x1, y1, x2, y2, x3, y3 = map(int, input().split())
ans = dist(x1, y1, x2, y2) + dist(x1, y1, x3, y3) + dist(x2, y2, x3, y3)
print('%.2f' % ans)1118 姐妹数对
def cond(x, y): return (x + y) % 3 == 0 or (x + y) % 7 == 0
n = int(input())
ans = 0
for i in range(1, n + 1): for j in range(i + 1, n + 1): if cond(i, j): ans += 1
print(ans)章节8:算法基础
1363 递归法求斐波拉契数列第n项的值
def f(n): if n == 1 or n == 2: return 1 return f(n - 1) + f(n - 2)n = int(input())print(f(n))1447 递归求n!
import mathn = int(input())print(math.factorial(n))1448 递归法实现辗转相除算法
import matha, b = map(int, input().split())print(math.gcd(a, b))1028 枚举法求水仙花数
m, n = map(int, input().split())f = Truefor i in range(m, n + 1): if i == sum(map(lambda x: (ord(x) - ord('0')) ** 3, str(i))): print(i, end=' ') f = Falseif f: print('no')1031 枚举法求完美数
def get_divisors_sum(n): s = 0 for i in range(1, int(n ** 0.5) + 1): if n % i == 0: s += i if i * i != n and i != 1: s += n // i return s
m, n = map(int, input().split())
for i in range(m, n + 1): if i == get_divisors_sum(i): print(i, end=' ')1362 递推法求斐波拉契数列第n项的值
n = int(input())a, b = 1, 1if n <= 2: print(1) exit(0)for i in range(n - 2): a, b = b, a + bprint(b)1101 汉诺塔
1440 二分查找
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
真-大沙子
