ブルーブリッジカップトピック1115:DNA(C言語)

質問1115:DNA

時間制限:1秒メモリ制限:128MB送信:8923解像度:3095

タイトル説明

Xiaoqiangは子供の頃から生命科学が好きで、花、草、鳥、獣がどこから来ているのか常に興味があります。最後に、小強は中学校に通い、神聖な用語であるDNAと接触しました。それは二重らせん構造を持っています。これにより、Xiaoqiangは頭皮を引っ掻き、「それを描くことができれば」とXiaoqiangは叫んだ。今彼を助けてください

入る

入力には、複数のテストデータセットが含まれています。最初の整数N(N <= 15)、Nはグループの数を表し、データの各グループには2つの整数a、bが含まれます。aはDNA文字列の単位の行数を表し、aは奇数、3 <= a <= 39です。bは繰り返しの程度を表します(1 <= b <= 20)。

出力

出力DNAの形状、出力の各グループ間に空白行があります。

サンプル入力

2 
3 1 
5 4

サンプル出力

XX 
 X 
XX 

XX 
 XX 
  X 
 XX 
XX 
 XX 
  X 
 XX 
XX 
 XX 
  X 
 XX 
XX 
 XX 
  X 
 XX 
XX

アイデア:

ルールを見つけて直接出力するだけです。

ルールは次のとおりです。jが横座標でkが縦座標の場合、j == kの場合に出力するか、j == a-1-kの場合に出力します。

エラーが発生しやすい:フォーマットの問題、最初の出力と次の出力が最初の行と異なります。fを使用して最初の出力をマークします

実装コード:

#include<stdio.h>
int main()
{
	int a,b,n,i,j,k;
	scanf("%d",&n);
	while(n--)
	{
		int f=0;
		scanf("%d%d",&a,&b);
		for(i=0;i<b;i++)
		{
			for(j=0;j<a;j++)
			{
				if(f==0||j!=0)
				{
					for(k=0;k<a;k++)
					{
						if(j==k||j==a-k-1)
						{
							printf("X");
						}
						else
						printf(" ");
						f=1;
					}
					printf("\n");
				}
			}
		}
		printf("\n");
	}
	return 0;
}

ハハハッハッハ

おすすめ

転載: blog.csdn.net/with_wine/article/details/114213626