自由练习 1115: DNA

1115: DNA

这类画图的题的关键在于肢解图形然后分步打印

题目描述

小强从小就喜欢生命科学,他总是好奇花草鸟兽从哪里来的。终于, 小强上中学了,接触到了神圣的名词–DNA.它有一个双螺旋的结构。这让一根筋的小强抓破头皮,“要是能画出来就好了” 小强喊道。现在就请你帮助他吧

输入

输入包含多组测试数据。第一个整数N(N<=15),N表示组数,每组数据包含两个整数a,b。a表示一个单位的DNA串的行数,a为奇数且 3<=a<=39。b表示重复度(1<=b<=20)。

输出

输出DNA的形状,每组输出间有一空行。

样例输入
2
3 1
5 4
样例输出
X X
 X
X X

X   X
 X X
  X
 X X
X   X
 X X
  X
 X X
X   X
 X X
  X
 X X
X   X
 X X
  X
 X X
X   X
#include<stdio.h>
void DNA(int n,int m);
int main(void)
{
	int N,i,a,b;
	scanf("%d",&N);
	for(i=0;i<N;i++)
	{
		scanf("%d %d",&a,&b);
		DNA(a,b);
		printf("\n");
	}
	return 0;	
} 
void DNA(int n,int m){
	int i,j,k;n=n/2+1;
	for(k=1;k<=m;k++)
	{
		for(i=1;i<=n-1;i++)
		{
			for(j=1;j<=i-1;j++)printf(" ");//left blank
			printf("X");//left X
			for(j=1;j<=(n-i)*2-1;j++)printf(" ");//mid blank
			printf("X\n");
		}
		for(j=1;j<=i-1;j++)printf(" ");
		printf("X\n");
		for(i=n-1;2<=i;i--)
		{
			for(j=1;j<=i-1;j++)printf(" ");//left blank
			printf("X");//left X
			for(j=1;j<=(n-i)*2-1;j++)printf(" ");//mid blank
			printf("X\n");
		}
	}
	printf("X");
	for(j=1;j<=(n-i)*2-1;j++)printf(" ");
	printf("X\n");
}
posted @ 2020-12-21 19:22  summeriver13  阅读(34)  评论(0)    收藏  举报