ACGO欢乐赛#44官方答案
2025-04-05 18:41:40
发布于:浙江
========警告:本答案只属ACGO.CN官方所有,禁止搬运!!!=
使用语言:PYTHON 3.12 AMD-64 bits and Dev Cpp
#1‘O’
def sum_o(x:int)->int:
case=list(map(int,str(x)))
case2=[]
for i in case:
if i in [0,4,6,9]:
case2.append(1)
elif i==8:
case2.append(2)
else:
case2.append(0)
return sum(case2)
k=[]
for i in range(101):
k.append(sum_o(i))
one=max(k)
print(k.index(one))
#2 ‘行图’
n=int(input())
cnt=0
arr=[]
for i in range(n):
h=int(input())
arr.append(h)
for j in range(1,n):
if arr[j-1]%arr[j]==0:
cnt+=1
print(cnt)
#3 ‘罚时计算’
n,m=map(int,input().split())
for i in range(n):
cnt=0
l=map(int,input().split())
for j in l:
if j!=1:
cnt+=((j-1)*20)
print(cnt,end=' ')
#4 ‘困难的字符串改造问题’
s = input()
count = 0
result = []
for c in s:
if c == ' ':
count += 1
letter = chr(ord('A') + (count - 1) % 26)
result.append(letter)
else:
result.append(c)
print(''.join(result))
#5 ‘追求更多的玫瑰花’
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n, m;
cin >> n >> m;
int c = 0, d = 0;
for (int i = 0; i < n; i) {
int x;
cin >> x;
if (x == 1) c;
else d++;
}
while (m--) {
int l, r;
cin >> l >> r;
int k = r - l + 1;
if (k % 2 != 0) {
cout << "sad\n";
} else {
int half = k / 2;
cout << (half <= c && half <= d ? "happy\n" : "sad\n");
}
}
return 0;
}
#6 ‘进制转换’(so easy!_)
读取输入
n = int(input())
A = list(map(int, input().split()))
将十进制数组 A 转换为八进制数组 B
B = []
for num in A:
oct_num = oct(num).replace("0o", "")
B.append(oct_num)
定义排序规则
def custom_sort_key(item):
# 先取最低位
last_digit = int(item[-1])
return (-last_digit, int(item))
按照自定义规则对 B 数组进行排序
B.sort(key=custom_sort_key)
输出排序后的 B 数组
print(" ".join(B))
===========the end!详情请至acgo.cn/exam/56650?currentQuestionIndex=1&开始查看!=
这里空空如也
有帮助,赞一个