기본 교육의 블루 브릿지 문자 그래픽 컵

그래픽 문자

자원 제약

시간 제한 : 1.0의 메모리 제한 : 256.0 MB

문제 설명

아름다운 그래픽을 형성 할 수있는 문자의 사용 예는 아래와 같습니다 :

ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC

이는이 규칙의 패턴을 찾아 패턴 행 5~7이고, n 행 및 m 열의 패턴을 출력한다.

입력 형식

두 정수 n 및 m을 포함하는 입력 라인은 각각 사용자가 출력 패턴 라인하려는 열의 수를 나타낸다.

출력 형식

N 출력 라인, 그래픽에 대한 각각의 m 문자.

샘플 입력

5 7

샘플 출력

ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC

데이터 크기 및 컨벤션

1 <= N, m <= 26.

사고

첫째, 주제는 다음과 같은 규칙에 의해 분석 될 수있다

  • 각 행의 첫 번째 문자는 i 번째 문자
  • 그것은 두 부분으로 나눌 수 있습니다
    • 첫 번째 부분에서는 반대로, i 번째 0 뒤쪽의 시작으로부터 문자, I-0 + 1의 총 가입 m 행
    • 두 번째 부분은 m까지, 공동 MI-1의 일부가 긍정적 (0 번째 반복 또는 문자)의 첫 번째 문자에서 시작하여

- C ++ 코드

#include <iostream>
using namespace std;

int main(){
	int n,m;
	cin>>n>>m;
	string str1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	
	for (int i=0;i<n;i++){
		string res = "";
        //第一部分
		for (int j=i;j>i-m;j--){
			if (j<0) break;
			res+=str1[j];
		} 
		////第二部分
		for (int k=1;k<m-i;k++){
			res+=str1[k];
		}
		cout<<res<<endl;
		//在两个循环内也可以直接cout,可以不用res
	}
	return 0;
}

개요

, 실제 동작에서, 제 전달하므로 교류 오프, 그때 한계 m를 초과 주로 제 1 부분의 길이는 상기 결합 된 데이터를 확인 (j> 0 오류는 J = 1이다) , 및 납 어떤 권리, 70 점, 나중에 직접 sub.str (0,2)이 실수를 만회하기 위해 직접 부품을 가질 수 있습니다. 하지만 여전히 비트 오류의 원인 및 내 재 처리 의 아이디어 STR [음성] GET ","한 휴식 제한 때문에 : 휴식 시간과 같은 C ++ 슬라이스 작업을 방지하는 동안, 제약 길이 m에서 다시 쓰기의 첫 번째 부분.

I는 찾을 블로그의 다른 저자에 있던 영리한 : 아주 얇은 캔 모양에 대해 이야기, 법률, 다음 주소의 블로그를
https://blog.csdn.net/richenyunqi/article/details/84261936

发布了8 篇原创文章 · 获赞 1 · 访问量 77

추천

출처blog.csdn.net/Lurker_hunter/article/details/104562702