信息素养Python编程题

在这里插入图片描述

n = int(input())
count = 0
a = n//5
for x in range(a+1):
    for y in range(a+1):
        for z in range(a+1):
            if x*5+y*8+z*10 == n:
                count+=1
print(count)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

n = int(input())
a = list(map(int,input().split()))
c = 0
for i in range(1,n):
    for j in range(i):
        if a[j]<a[i]:
            c+=1
print(c)
#include <iostream>
#include <vector>
using namespace std;

int main() {
	int a[] = {7,0,2,5,6,1,3,4};
	int s = 0;
	for(int i = 1;i<8;i++){
		for(int j = 0;j<i;j++){
			if(a[j]<a[i]){
				s+=1; 
			}
		}		
	} 
	cout<<s;
}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

n = int(input())
a = list(map(float, input().split()))
c = 0
for i in range(n):
    for j in range(i):
        if a[i]>a[j]:
            c+=1
    print(c)
    c=0

在这里插入图片描述
在这里插入图片描述

n = int(input())

if n == 1:
    print(0)
elif n == 2:
    print(1)
else:
    d_prev_prev = 0  # D(1)
    d_prev = 1        # D(2)
    for i in range(3, n+1):
        d_current = (i-1) * (d_prev + d_prev_prev)
        d_prev_prev, d_prev = d_prev, d_current
    print(d_prev)

在这里插入图片描述

在这里插入图片描述

a = list(map(int,input().split()))
sum=0
for i in range(len(a)):
    for j in range(i+1,len(a)):
        if a[i]>a[j]:
            sum+=1
print(sum)

在这里插入图片描述

n = int(input())
a = 1
sum = 0
for i in range(1, n+1, 2):
    if a % 2 == 1:
        sum = sum+1/i
    else:
        sum = sum-1/i
    a+=1
print(round(sum,8))

在这里插入图片描述

def pascal_triangle(n):
    triangle = []
    for row in range(n):
        current_row = [1]  # 每行以1开始
        if row > 0:
            prev_row = triangle[row-1]
            for i in range(1, row):
                current_row.append(prev_row[i-1] + prev_row[i])
            current_row.append(1)  # 每行以1结束
        triangle.append(current_row)
    return triangle


# 打印前10行
for row in pascal_triangle(10):
    print(row)

# 创建一个5x5的矩阵
rows = 6
cols = 6
matrix = []
for i in range(rows):
    row = []
    for j in range(cols):
        row.append(0)
    matrix.append(row)

for i in range(rows):
    matrix[i][0] = 1
    for j in range(1,i+1):
        matrix[i][j] = matrix[i-1][j]+matrix[i-1][j-1]

for i in range(rows):
    for j in range(i+1):
        print(matrix[i][j], end=" ")
    print()

#include <iostream>
using namespace std;

int main() {
    int n;
    cin>>n;
    int triangle[n][n] = {};
    for (int i = 0; i < n; ++i) {
        triangle[i][0] = triangle[i][i] = 1;
        for (int j = 1; j < i; ++j) {
            triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
        }
    }
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j <= i; ++j) {
            cout << triangle[i][j];
        }
        cout << endl;
    }
    
    return 0;
}

在这里插入图片描述

a = int(input())
for i in range(1,a+1):
    for j in range(1,2*i):
        if j<=i:
            print(j,end='')
        else:
            for z in range(j-2,0,-1):
                print(z, end='')
            break
    print()
#include<vector>
#include <iostream>
using namespace std;
int main() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; ++i) {
		for (int j = 1; j <= 2*i; ++j) {
			if(j<=i){
				cout<<j<<",";
			}else{
				for (int z = j-2; z > 0; z--) {
					cout<<z<<",";
				}
				break;
			}
		}
		cout<<endl;
	}
}
#include <iostream>
#include <vector>
using namespace std;

void generateSequence(int n) {
    for (int i = 1; i <= n; ++i) {
        // 递增部分
        for (int j = 1; j <= i; ++j) {
            cout << j;
            if (i != 1) cout << ",";
        }
        
        // 递减部分(当i>1时)
        if (i > 1) {
            for (int j = i-1; j >= 1; --j) {
                cout << j;
                if (j != 1) cout << ",";
            }
        }
        
        cout << endl;
    }
}

int main() {
    int n;
    cin >> n;
    generateSequence(n);
    
    return 0;
}

十一

在这里插入图片描述

n = list(map(int, input().split()))
a = list(map(int, input().split()))
a.sort()
c = 0

for i in range(1, n[0]):
    for j in range(i):
        if a[i] - a[j] == n[1]:
            c += 1
print(c)

十二

在这里插入图片描述

n = int(input())
book_counts = {}

for i in range(n):
    book = input()
    if book in book_counts:
        book_counts[book] += 1
    else:
        book_counts[book] = 1

# 按字典序排序书名
sorted_books = sorted(book_counts.keys())

# 输出结果
print(len(sorted_books))
for book in sorted_books:
    print(f"{book} {book_counts[book]}")

十三

在这里插入图片描述

a = input()
n = int(input())
i = 0
b = []

while i < len(a):
    ge = 0
    for j in range(i, len(a)):
        if a[i] == a[j]:
            ge += 1
        else:
            break
    i += ge
    b.append(ge)

si = 0
for i in b:
    if i >= n:
        si += 1

print(si)

十四

在这里插入图片描述

sum=0
res = []
for x in range(11):
    for y in range(11):
        for z in range(31):
            if x+y+z==2:
                res.append((x,y,z))
print(res)

十五

在这里插入图片描述

n = int(input())
s = 1
for i in range(n):
    s=s*n%1000
print(s%1000)

十六

在这里插入图片描述

n = int(input())
s = []

for i in range(n):
    a = int(input())
    s.append(a)

s.sort()

# 修改变量名以避免与列表s混淆
result = 0
result = sum(s[-3:]) + s[-1] * 2

print(result)

十七

在这里插入图片描述

n = int(input())
print(n * (n - 1) * (n - 2))

十八

在这里插入图片描述

n = int(input())
L = list(map(int,input().split()))
t = 1
res = 0
for i in range(len(L)-1):
    if L[i]>L[i+1]:
        t+=1
    else:
        t = 1
    res = max(t,res)
print(res)

十九

在这里插入图片描述

n = int(input())
recipes = list(map(int, input().split()))
recipes.sort()

days = 0
current_day = 1

for food in recipes:
    if food >= current_day:
        days += 1
        current_day += 1

print(days)

二十

在这里插入图片描述
在这里插入图片描述

n = int(input())
m = int(input())
customers = []
for _ in range(m):
    a, b = map(int, input().split())
    customers.append((b, a))  # 存储为(价格, 重量)方便排序

# 按价格从高到低排序
customers.sort(reverse=True)

total_money = 0
remaining = n

for b, a in customers:
    if remaining <= 0:
        break
    sell = min(a, remaining)
    total_money += sell * b
    remaining -= sell

print(total_money)

### Python信息素养大赛编程题目示例 #### 示例1:区间匹配问题 此题来源于2024年全国青少信息素养大赛Python编程复赛集训第八天编程题分享。给定`n`个整数和`m`个区间,对于每一个区间,找到是否存在一个未被使用的整数位于该区间内并标记为已使用。 ```python n, m = map(int, input().split()) t = [] a = [] b = [] h = [] for i in range(1, n + 1): x = int(input()) t.append(x) h.append(0) for i in range(1, m + 1): x, y = map(int, input().split()) a.append(x) b.append(y) t.sort() # 对区间的起点进行排序,如果相同则按终点升序排列 for i in range(m - 1): for j in range(m): if ((a[i] > a[j]) or (a[i] == a[j] and b[i] > b[j])): a[i], a[j] = a[j], a[i] b[i], b[j] = b[j], b[i] ans = 0 for i in range(m): for j in range(n): if t[j] >= a[i] and t[j] <= b[i] and h[j] == 0: ans += 1 h[j] = 1 break if t[j] > b[i]: break print(ans)[^1] ``` #### 示例2:哼哈二将 这道题来自2023年第9届Python编程挑战赛海南赛区(小学组)复赛试题解析中的T2。根据输入的正整数`n`,输出相应次数的“哼哈”。 ```python n = int(input()) print('哼哈' * n)[^3] ``` #### 示例3:错排问题 此题摘自2023年第9届Python编程挑战赛北京赛区(小学组)复赛试题解析里的T6。计算所有礼物都装错盒子的不同情况数量。 ```python def derangement(n): if n == 0: return 1 elif n == 1: return 0 else: return (n - 2)) n = int(input()) answer = derangement(n) print(answer)[^4] ``` #### 示例4:统计考试成绩 这个问题出自全国青少年信息素养大赛2023年的Python复赛真题第4题。读入学生的人数以及他们的分数列表,然后分别打印出高于或等于平均分的学生人数和低于平均分的学生人数。 ```python import math n = int(input()) scores = list(map(int, input().split())) average_score = sum(scores) / len(scores) above_average_count = sum(score >= average_score for score in scores) below_average_count = n - above_average_count print(math.floor(average_score), above_average_count, below_average_count) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值