625.圆和方(2019NHOI小乙) 题目描述
天圆地方,这是古老浪漫的传说。小C准备为学校六一儿童节画一个天圆地方的LOGO图,下面是小C的草图,请你使用goc编程在计算机上画出。
注:矩形边长200,颜色号10;圆半径80,颜色号4。
题目解答:
int main(){
p.rr(200,200,10);
p.oo(80,4);
return 0;
}
626.彩色线条(2019NHOI小乙) 题目描述
顺利完成了画天圆地方的LOGO图案,下一步小C想设计颜色周期变化的彩色线条。例如:输入线条数为20时,图形如下。
上面线段颜色的周期变化规律是:红(1号)、蓝(2号)、绿(3号)…;
下面线段颜色的周期变化规律是:黄(5号)、棕(6号)、紫(11号)、金(14号)…;
上、下每个线的长度各100(红色100,黄色100...),间距20。
输入格式
第一行1个整数n,表示输入的线条数。(2<=n<=20)
输出格式
正确的图形。
输入/输出例子1
输入:
12
输出:
题目解答:
int main(){
int n;cin>>n;
for(int i=0;i<n;i++)
{p.c(i%3+1).fd(100).bk(100);
if(i%4==0) p.c(5);
if(i%4==1) p.c(6);
if(i%4==2) p.c(11);
if(i%4==3) p.c(14);
p.bk(100).up().fd(100).rt(90).fd(20).lt(90).down();}
return 0;
}
627.传声(2019NHOI小乙) 题目描述
小C节日旅游来到一个农场。农场主John和n个奶牛站在一条水平线上。牛的传递消息是依靠“吼”,牛的吼叫声最远可以传递的距离是50。农场主John首先通知最左边的第一条奶牛(一定会通知到),然后奶牛就开始向后吼叫,后面的奶牛如果能听到(和前面吼叫的奶牛距离不超过50),就继续向后吼叫传递消息。
听到消息的奶牛用半径10的圆表示;如果有没有听到消息的奶牛,就用边长20的正方形表示。
输入格式
第一行1个整数n;(2<=n<=10)
第二行n个整数,空格隔开,表示每头奶牛距离最左边的John的距离,数值大小递增。
注意:不要使用坐标命令!颜色默认。
输出格式
正确的图形。
输入/输出例子1
输入:
7
60 100 120 150 250 260 290
输出:
题目解答:
int main(){
int n,a[100],b=1;
cin>>n;
p.rt(90).hide();
for(int i=1;i<=n;i++)
cin>>a[i];
a[0]=a[1];
for(int i=1;i<=n;i++)
{ if(a[i]-a[i-1]>50)
b=2;
p.fd(a[i]-a[i-1]);
if(b==1) p.oo(10);
if(b==2) p.rr(20,20);}
return 0;
}
628.花边图案(2019NHOI小乙) 题目描述
小C在森林里发现了一些岩画,有一些大小不一的正方形花边图案。图案的边上是若干凸凹图形组成的,请你编写goc程序,在输入边上的需要多少凸凹后,就可以画出一个正方形的四周花边。例如输入2时,图案如下图,每边有2个凸形。
注:每小段长度为20,颜色号1。
输入格式
一行1个整数n,表示每边需要的凸形数。1<=n<=8
输出格式
正确的图形。
输入/输出例子1
输入:
5
输出:
题目解答:
int main(){
int n;cin>>n;p.rt(90).c(1);
for(int j=0;j<4;j++)
{ for(int i=0;i<n;i++)
p.fd(20).lt(90).fd(20).rt(90).fd(20).rt(90).fd(20).lt(90).fd(20).bk(20);
p.rt(90).bk(20);}
return 0;
}
630.电线杆(2019NHOI小乙) 题目描述
小C在农场的附近看到有n颗电线杆排成一行,相邻之间距离为20。它们高度可能不一样,但高度相同的电线杆顶端有电线连接。如下面示意图中,电线杆用粗细为6的垂直直线画,电线用粗细为2的水平直线画。给定每个电线杆的高度,请用goc编程画出示意图。比如:n=4, 高度为:100 50 50 100,示意图如下:
输入格式
第一行1个正整数n,2<=n<=15。
第二行n个正整数,依次表示从左到右的电线杆的高度。
输出格式
正确的图形。
输入/输出例子1
输入:
7
200 60 80 40 200 80 200
输出:
题目解答:
int main(){
int n, a[20];
cin>>n;
p.speed(5).hide();
for (int i=0; i<n; i++)
cin>>a[i];//输入数组
for (int i=0; i<n; i++)
{ p.size(6).fd(a[i]);
for (int j=0;j<i; j++){
if (a[j]==a[i])//比较是否一样高
p.lt(90).size(2).fd((i-j)*20 ).bk((i-j)*20 ).rt(90);
}
p.bk(a[i]);
p.up().rt(90).fd(20).lt(90).down();
}
return 0;
}
632.寻宝游戏(填空)(2019NHOI小乙) 题目描述
小C在山上发现了n个山洞组成的寻宝游戏,这些洞均匀的排成一圈,游戏的规则是,小C从第1个洞开始查找,然后顺时针每隔m个洞查找下一个山洞,可是这样的话有些山洞就可能永远都查找不到。比如:n =6,m=3有下面图形的1号到6号山洞,小C开始查找1号山洞,然后隔3个查找5号山洞,隔3个查找3号山洞、再隔3个查找1号山洞,隔3个查找5号山洞,…,
因此,只能查找到1号、3号和5号山洞,而2号、4号、6号永远查找不到。现在要求你编写程序,把可以查看到的山洞用红色(1号颜色)实心圆表示出来。例如:n=6,m=3时,结果如下。
注:圆的半径都为30,圆心到中心位置为200。
输入格式
第一行2个整数n,m;(2<=m<n<=20)
输出格式
正确的图形。
输入/输出例子1
输入:
5 3
输出:
输入/输出例子2
输入:
18 5
输出:
题目解答: