题目描述
DNA被称之为遗传微粒,它是组成基因的材料。DNA亲子鉴定可以分析遗传特征,判断父母与子女之间是否是亲生关系;DNA检测可以在身体没有患病的情况下,找到隐藏在您体内的“基因地雷”; 在这次的新冠病毒朔源中,基因测序技术就起着至关重要的作用。

上图是一个DNA双螺旋模型,小C也想编程画出如下图变化规律的图形,请你帮帮他吧。

这个图形我们可以把它看成是由:一条粗细为1的直线,两头各有一个半径为5的红色(1号色)和绿色(3号色)实心圆而构成的基本图形。

它按从左到右,逐渐变长,再逐渐变短的规律而成的,每次变化值为10,图形间距为10。我们把下图称为“一节”,它还有一个对称节。
DNA模型图就是由这些一节节的图形交叉出现而构成,现在请你根据规律画出一个有N节的DNA双螺旋模型图。
注意:N=10时要确保图形全部在画布窗口内
输入格式
输入一个正整数N(1<=N<=10),表示图形有N节。
输出格式
请你根据规律画出一个有N节的DNA双螺旋模型图。
输入/输出例子1
输入:
3
输出:

输入/输出例子2
输入:
4
输出:

参考答案
void DNA(int a)
{
int r=3,g=1;
if(a%2==0)
{
r=1;
g=3;
}
p.size(1);
for(int i=0;i<=3;i++)
{
p.fd(i*20/2.0);
p.oo(5,r);
p.bk(i*20/2.0);
p.bk(i*20/2.0);
p.oo(5,g);
p.up();
p.fd(i*20/2.0);
p.rt(90).fd(10).lt(90);
p.down();
}
for(int i=3;i>=0;i–)
{
p.fd(i*20/2.0);
p.oo(5,r);
p.bk(i*20/2.0);
p.bk(i*20/2.0);
p.oo(5,g);
p.up();
p.fd(i*20/2.0);
if(i==0)
{
p.clsRec(10,10);
p.oo(5,r);
break;
}
p.rt(90).fd(10).lt(90);
p.down();
}
}
int main(){
p.speed(10);
p.moveTo(-350,0)
int a;
cin>>a;
for(int i=0;i<a;i++)
{
DNA(i);
}
p.hide();
return 0;
}
题目链接:
https://v1.51goc.com/question/viewProgram/12518
(进去后要登录)




