正文

打印DNA2007-06-14 16:26:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lingdlz/26791.html

分享到:

打印 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

// MY CODE 07-6-14

#include <stdio.h>
#include <string.h>
#define MAX 42

void SetMetrix(char m[][MAX], int a){
 int i,j;
 for(i = j = 0; i < a; i++,j++)
  m[i][j] = 'X';
 for(j=a-1,i=0; i < a; i++,j--)
  m[i][j] = 'X';
 for(i=0, j=a; i < a; i++)
  m[i][j] = '\0';
}

void Print(char m[][MAX], int a, int b){
 int i,j;
 for(j = i = 0; j <= b; ){
  printf("%s\n",m[i]);
  j = (i==0 ? j+1 : j);
  i = (i==a-2 ? 0 : i+1);
 }
 printf("\n");
}

int main(){
 char metrix[MAX][MAX];
 int  n,a,b;
 scanf("%d",&n);
 for(;n > 0; n--){
  scanf("%d %d",&a,&b);
  memset(metrix,32,sizeof(char)*a*MAX);
  SetMetrix(metrix,a);
  Print(metrix,a,b);
 }  
 return 0;
}

阅读(3565) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册