[蓝桥杯]DNA

DNA

时间限制: 1Sec 内存限制: 128MB 提交: 2558 解决: 818

题目描述
小强从小就喜欢生命科学,他总是好奇花草鸟兽从哪里来的。终于, 小强上中学了,接触到了神圣的名词–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

解题思路

以5行为例
+代表空格

	(0,0)    + 		+		 +		(0,4)
     	+	(1,1)     +     (1,3)     +
		+ 	    +    (2,2)     +         +
		+  	(3,1)     +     (3,3)     +
	(4,0)    + 		+		  +		(4,4)

找到规律就容易做了
多个重复的时候需要控制一下最后一行。
temp是这次输出得单个图形得行数,num是输入的重复数。

int temp=num-1;
if(j==n-1)
	temp=num;

完整代码

#include<iostream>
using namespace std;

int main()
{
    int N;
	cin>>N;
	int NN[50][50];
	for(int i=0;i<N;i++)
		for(int j=0;j<N;j++)
			cin>>NN[i][j];

	for(int i=0;i<N;i++)
	{
		int num = NN[i][0];
		int n = NN[i][1];
		for(int j=0;j<n;j++)
		{
			int temp=num-1;
			if(j==n-1)
				temp=num;
			for(int k=0;k<temp;k++)
			{
				for(int p = 0;p<num;p++)
					if(k==p || k+p+1==num)
						cout<<"X";
					else cout<<" ";
				cout<<endl;
			}
		}
		cout<<endl;
	}
    return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值