题目描述
小强从小就喜欢生命科学,他总是好奇花草鸟兽从哪里来的。终于, 小强上中学了,接触到了神圣的名词--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
思路
有多段DNA,设立函数单独输出每一段DNA,将其衔接,底部另外补齐
#include<stdio.h>
void spacepri(int n) {//输出空格
for (int i = 0;i < n;i++) {
printf(" ");
}
}
void compute(int a) {//输出每一段螺旋
int i=0;
while (2*i<a-1) {//上半段
spacepri(i);//开头的空格
printf("X");
spacepri(a - 2 * (i+1));//中间的空格
printf("X\n");
i++;
}
spacepri(i);
printf("X\n");
i--;
while (i > 0) {//下半段
spacepri(i);
printf("X");
spacepri(a - 2 * (i+1));
printf("X\n");
i--;
}
}
int main() {
int n;
int a, b;
scanf("%d", &n);
for (int i = 0;i < n;i++) {
scanf("%d %d", &a, &b);
for (int j = 0;j < b;j++) {
compute(a);
}
printf("X");//将底部补齐
spacepri(a - 2);
printf("X\n\n");
}
return 0;
}
1538

被折叠的 条评论
为什么被折叠?



