1. 杨辉三角
题目描述
给出 n(n ≤ 20),输出杨辉三角的前 n 行。
样例输入
6
样例输出
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1
#include <stdio.h>
int main()
{
int i, j, n;
scanf("%d", &n);
int a[n][n];
for(i=0; i<n; i++)
{
a[i][0] = 1; // 每行第一列元素的值为1
a[i][i] = 1; // 对角线元素值为1
}
for(i=2; i<n; i++)
{
for(j=1; j<i; j++)
{
a[i][j] = a[i-1][j-1] + a[i-1][j]; // 值为上一行同列和前一列两个数之和
}
}
for(i=0; i<n; i++)
{
for(j=0; j<=i; j++)
{
if (j != i)
printf("%d ", a[i][j]);
else
printf("%d", a[i][j]);
}
printf("\n");
}
return 0;
}
2. 自动修正
题目描述
输入一个长度不超过 100 且不包括空格的字符串。要求将该字符串中的所有小写字母变成大写字母并输出。
输入格式
输入一行,一个字符串。
输出格式
输出一个字符串,即将原字符串中的所有小写字母转化为大写字母。
样例输入
Luogu4!
样例输出
LUOGU4!
str1 = input().strip()
print(str1.upper())
3. 闰年展示
题目描述
输入 x,y(1582 ≤ x < y ≤ 3000),输出 [x,y] 区间中闰年个数,并在下一行输出所有闰年年份数字,使用空格隔开。
输入格式
输入两个正整数 x,y,以空格隔开。
输出格式
第一行输出一个正整数,表示 [x,y] 区间中闰年个数。
第二行输出若干个正整数,按照年份单调递增的顺序输出所有闰年年份数字。
样例输入
1989 2001
样例输出
3 1992 1996 2000
def is_leap(year):
"""判断是否是闰年"""
if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
return True
else:
return False
x, y = map(int, input().strip().split())
if 1582 <= x < y <= 3000:
count = 0
leap_years = []
for year in range(x, y+1):
if is_leap(year):
count += 1
leap_years.append(year)
print(count)
print(' '.join(map(str, leap_years)))
4. 猴子吃桃
题目描述
一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;接下来的每一天它都会吃剩余的桃子的一半外加一个。第 n 天早上起来一看,只剩下 1 个桃子了。请问小猴买了几个桃子?
输入格式
输入一个正整数 n(1 ≤ n ≤ 20),表示天数。
输出格式
输出小猴买了多少个桃子。
样例输入
4
样例输出
22
n = int(input())
ans = 1
while n > 1:
ans = (ans + 1) * 2
n -= 1
print(ans)
5. 培训
题目描述
某培训机构的学员有如下信息:
- 姓名(字符串)
- 年龄(周岁,整数)
- 去年 NOIP 成绩(整数,且保证是 5 的倍数)
经过为期一年的培训,所有同学的成绩都有所提高,提升了 20%(当然 NOIP 满分是 600 分,不能超过这个得分)。
输入学员信息,请设计一个结构体储存这些学生信息,并设计一个函数模拟培训过程,其参数是这样的结构体类型,返回同样的结构体类型,并输出学员信息。
输入格式
第一行输入一个正整数 n(1≤n≤5),表示学员个数。
第二行开始往下 n n n 行。每行首先是一个字符串表示学员姓名,再是一个整数表示学员年龄(年龄为 0∼100(含 0 与 100)的整数),再是一个整数为去年 NOIP 成绩(0∼600(含 0 与 600)的 5 的整倍数)。
输出格式
输出 n 行,每行首先输出一个字符串表示学生姓名,再往后两个整数,表示经过一年的培训后学员的年龄和他们今年的 NOIP 成绩。以空格隔开。
样例输入
3 kkksc03 24 0 chen_zhe 14 400 nzhtl1477 18 590
样例输出
kkksc03 25 0 chen_zhe 15 480 nzhtl1477 19 600
#include <stdio.h>
typedef struct Student
{
char name[20]; // 姓名
int age; // 年龄
int score; // 成绩
};
int main()
{
int n;
scanf("%d", &n);
struct Student stu[n];
int i;
for (i=0; i<n; i++)
{
scanf("%s %d %d", &stu[i].name, &stu[i].age, &stu[i].score);
}
for (i=0; i<n; i++)
{
stu[i].age += 1;
stu[i].score *= 1.2;
if (stu[i].score > 600)
stu[i].score = 600;
printf("%s %d %d\n", stu[i].name, stu[i].age, stu[i].score);
}
return 0;
}