课题及解析建议用时60分钟,作业及讲解建议用时50分钟。
课题及解析:
4003:【GESP2303二级】画三角形
【题目描述】
输入一个正整数 n,请使用大写字母拼成一个这样的三角形图案(参考样例输入输出):三角形图案的第 1 行有 1 个字母,第 2 行有 2 个字母,以此类推;在三角形图案中,由上至下、由左至右依次由大写字母 A−Z 填充,每次使用大写字母 Z 填充后,将从头使用大写字母 A 填充。
【输入】
输入一行,包含一个正整数 n。约定 2≤n≤40。
【输出】
输出符合要求的三角形图案。注意每行三角形图案的右侧不要有多余的空格。
【输入样例】
3
【输出样例】
A
BC
DEF
【提示】
【样例输入 2】
7
【样例输出 2】
A
BC
DEF
GHIJ
KLMNO
PQRSTU
VWXYZAB
【解析】
思路:
①题意:输出n行,每行1至n个大写字母。解题步骤:
①变量:
int n;
cin>>n;
char zf='A';
②一级结构:
for(int i=1; i<=n; i++)//i表示行的编号
③二级结构:
for(int j=1; j<=i; j++)//j表示第i行的第几个字符
cout<<zf;
④三级结构:
if(zf>90)//当zf存的值超过Z时,把zf初始为A。
zf='A';
【答案】
/*4003:【GESP2303二级】画三角形*/
#include<iostream>
using namespace std;
int main()
{int n;cin>>n;char zf='A';for(int i=1; i<=n; i++){for(int j=1; j<=i; j++){cout<<zf;zf++;if(zf>90) zf='A';//大Z的ASCII值是90。 }cout<<endl;}return 0;
}
4004:【GESP2303二级】百鸡问题
【题目描述】
“百鸡问题”是出自我国古代《张丘建算经》的著名数学问题。大意为:“每只公鸡 5 元,每只母鸡 3 元,每 3 只小鸡 1 元;现在有 100 元,买了 100 只鸡,共有多少种方案?”
小明很喜欢这个故事,他决定对这个问题进行扩展,并使用编程解决:如果每只公鸡 x 元,每只母鸡 y 元,每 z 只小鸡 1 元;现在有 n 元,买了 m 只鸡,共有多少种方案?
【输入】
输入一行,包含五个整数,分别为问题描述中的 x、y、z、n、m。约定 1≤x,y,z≤10,1≤n,m≤1000。
【输出】
输出一行,包含一个整数 C,表示有 C 种方案。
【输入样例】
5 3 3 100 100
【输出样例】
4
【提示】
【样例解释 1】
这就是问题描述中的“百鸡问题”。4 种方案分别为:公鸡 0 只、母鸡 25 只、小鸡 75 只;公鸡 4 只、母鸡 18 只、小鸡 78 只;公鸡 8 只、母鸡 11 只、小鸡 81只;公鸡 12 只、母鸡 4 只、小鸡 84 只。
【样例输入 2】
1 1 1 100 100
【样例输出 2】
5151
【解析】
思路:
①题意:现在有 n 元,刚好买了 m 只鸡,共有多少种方案?
其中,每只公鸡 x 元,每只母鸡 y 元,每 z 只小鸡 1 元。解题步骤:
①变量:
int x, y, z, n, m, num=0;//num方案数量
cin>>x>>y>>z>>n>>m;
②一级结构:
for(int i=0; i*x<=n&&i<=m ; i++)//i表示公鸡的数量
③二级结构:
for(int j=0; i*x+j*y<=n&&i+j<=m ; j++)//j表示母鸡的数量
④三级结构:
int k=(n-i*x-j*y)*z;//k表示母鸡的数量
if(i+j+k==m)
【答案】
/*4004:【GESP2303二级】百鸡问题*/
#include<iostream>
using namespace std;
int main()
{int x, y, z, n, m, c=0;cin>>x>>y>>z>>n>>m;for(int i=0; i*x<=n&&i<=m ; i++){for(int j=0; i*x+j*y<=n&&i+j<=m ; j++){int k=(n-i*x-j*y)*z;//剩下的钱都买小鸡,刚好花完n元。 if(i+j+k==m){c++;
//仅测试 cout<<i<<" "<<j<<" "<<k<<endl;}}}cout<<c;return 0;
}
作业及讲解:
作业一、4001:【GESP2303一级】每月天数
【题目描述】
小明刚刚学习了每月有多少天,以及如何判断平年和闰年,想到可以使用编程方法求出给定的月份有多少天。你能做到吗?
【输入】
输入一行,包含两个整数,分别表示一个日期的年、月。
【输出】
输出一行,包含一个整数,表示输入月份有多少天。
【输入样例】
2022 1
【输出样例】
31
【提示】
【样例输入 2】
2020 2
【样例输出 2】
29
作业一解析:(点击下一行进入)
4001:【GESP2303一级】每月天数
作业二、4002:【GESP2303一级】长方形面积
【题目描述】
小明刚刚学习了如何计算长方形面积。他发现,如果一个长方形的长和宽都是整数,它的面积一定也是整数。现在,小明想知道如果给定长方形的面积,有多少种可能的长方形,满足长和宽都是整数?
如果两个长方形的长相等、宽也相等,则认为是同一种长方形。约定长方形的长大于等于宽。正方形是长方形的特例,即长方形的长和宽可以相等。
【输入】
输入一行,包含一个整数A,表示长方形的面积。约定2≤A≤1000。
【输出】
输出一行,包含一个整数C,表示有C种可能的长方形。
【输入样例】
4
【输出样例】
2
【提示】
【样例解释 1】
2 种长方形面积为 4,它们的长宽分别为2×2、4×1。
【样例输入 2】
6
【样例输出 2】
2
【样例解释 2】
2 种长方形面积为 6,它们的长宽分别为3×2
作业二解析:(点击下一行进入)
4002:【GESP2303一级】长方形面积