第11关 - 2018学年DL小学GoC比赛
373.讲台 (2018学年DL小学GoC比赛 第1题)
题目描述
小C学了一年的GoC,今天终于要进考场了。小C发现考场是一个教室,教室的讲台是一个长方形,长是200,宽是100,讲台的四个角都有一个边长是20的正方形小孔,如下图所示:
题解
void sbx(int a, int b)
{
for(int i=0;i<2;i++)
p.fd(a).rt(90).fd(b).rt(90);
}
int main() {
p.fd(100).rt(90); sbx(20,20);
p.fd(200).rt(90); sbx(20,20);
p.fd(100).rt(90); sbx(20,20);
p.fd(200).rt(90); sbx(20,20);
return 0;
}
374.成绩 (2018学年DL小学GoC比赛 第2题)
题目描述
N个学生参加本次考试,本次考试满分300分,考试结束后每个学生都有一个分数。对于每个学生,你都要画一个长方形,长方形的宽度是20,高度是学生的分数。为了使得画出的图形不挨在一起,我们规定相邻的两个长方形之间间隔的距离是20。不过,为了使得学生之间的分数差距太大,老师规定:凡是低于60分的会修正为60分,凡是高于250分的会修正为250分。
输入格式 第一行,一个整数N。 1 <= N <= 10。
第二行,N个整数,第i个整数表示第i个学生的得分。得分范围是[0,300]。
输出格式 共N个长方形。
输入/输出例子1
输入:
5
20 60 150 250 280
输出:
题解
int main() {
int n,a;
cin >> n;
for (int i=0; i<n; i++)
{
cin >> a;
if (a<60) a=60;
if(a>250) a=250;
p.fd(a).rt(90).fd(20).rt(90);
p.fd(a).rt(90).fd(20).rt(90);
p.rt(90).up().fd(40).lt(90).down();
}
return 0;
}
375.跑步 (2018学年大沥镇小学GoC比赛 第3题)
题目描述
小C和小P在操场跑步,操场是一个宽度是300高度是200的长方形开始小C的位置在操作左下角的点,小P的位置在操场右下角的点。两人都是逆时针跑步。小C的速度是每秒前进X,小P的速度是每秒前进Y,其中X > Y,所以只要两人跑步的时间足够多,小C肯定能追上小P。你的任务是:
1、画出宽度是300高度是200的长方形。
2、以小C第一次追上小P的位置点作为圆心,画一个半径是15的实心圆,圆的颜色是1号颜色。
输入格式 一行,两个整数: X和Y。 1 <= Y < X <= 200。
数据保证:小C一定能在整数秒内追上小P,本题不需要用到实数。
输出格式 相应的图形。
输入/输出例子1
输入:
40 10
输出:
题解
int main() {
int x,y,s;
cin >> x >>y;
p.fd(200).rt(90).fd(300).rt(90);
p.fd(200).rt(90).fd(300).rt(90);
s=300/(x-y);
s=s*x%1000;
p.rt(90);
if (s<300)
p.fd(s);
else {
p.fd(300).lt(90);
if (s<500){
p.fd(s-300);
}else {
p.fd(200).lt(90);
if (s<800)
p.fd(s-500);
else {
p.fd(300).lt(90);
p.fd(s-800);
}
}
}
p.oo(15,1);
return 0;
}
376.放大镜 (2018学年大沥镇小学GoC比赛 第4题)
题目描述
小C想画一个超级放大镜。画放大镜就是先画一条向上的线段作为放大镜的柄,然后再画一个实心圆作为放大镜的镜片。输入数据给出N个正整数。柄的线段宽度是10,长度是给出的N个正整数之中的最小值,柄的颜色是6号颜色。镜片的半径是N个整数之中的最大值,镜片的颜色是8号颜色。
输入格式 第一行,一个整数N。 1 <= N <= 20。
第二行,N个正整数,每个正整数的范围:[10,100]。
输出格式 相应的放大镜图形。
输入/输出例子1
输入:
5
70 90 100 80 60
输出:
题解
int main() {
int n,max,min,x;
max=0; min=10000;
cin >>n;
for (int i=0; i<n; i++)
{
cin >>x;
if (x>max) max=x;
if (x<min) min=x;
}
p.c(6).size(10).fd(min);
p.fd(max).c(8).oo(max);
p.hide();
return 0;
}
378.找规律 (2018学年大沥镇小学GoC比赛 第5题)
题目描述
有一个序列: 1 2 4 7 11 16 ……
按照这个规律,序列的第N项是什么?
假设序列的第N项是X,那么你的任务是:以X % 16为颜色号,画一个半径是50的实心圆。
输入格式 一个整数N。 1 <= N <= 2000。
输出格式 相应的实心圆
输入/输出例子1
输入:
3
输出:
输入/输出例子2
输入:
120
输出:
题解
int main() {
int n,x;
x=1;
cin >> n;
for(int i=0;i<n;i++)
{
x=x+i;
}
p.oo(50,x%16);
p.hide();
return 0;
}
377.落珠 (2018学年大沥镇小学GoC比赛 第6题)
题目描述
有N块木板,编号1至N,第i块木板的长度是L[i],所有木板的长度都不相同。这N块木板从上往下是横放的,木板的左端点都是靠左对齐,上下相邻两块木板的距离是20,第1块木板在最上面,第N块木板在最下面。例如: N = 5, 5块木板的长度依次是: 100、70、120、30、150,那么对应的图形是:
有一颗珠子,一开始在最上方的木板的最右边,然后垂直下落,一直掉到某一块木板上被拦住,然后珠子朝该木板的右边滚动,然后又开始垂直下落,一直重复这个过程,直到珠子滚动到第N块木板的最右边才停止。如下图所示,红色的线条是珠子下落和滚动的轨迹:
你的任务是:画出珠子下落的轨迹,即红色的线条。
输入格式 第一行,一个整数N。 1 <= N <= 10。
第二行,N个正整数,第i个正整数是L[i]。10 <= L[i] <= 250。所有L[i]互不相同。
输出格式
相应的下落轨迹。
输入/输出例子1
输入:
7
30 100 70 100 120 30 150
输出:
题解
int main() {
int n, a[20];
cin >> n;
for(int i=0;i<n;i++)
cin >>a[i];
int x=a[0];
p.c(1).rt(180);
for(int i=1;i<n;i++){
p.fd(20);
if (a[i]>x)
{
p.lt(90).fd(a[i]-x).rt(90);
x=a[i];
}
}
p.hide();
return 0;
}