그래픽 문자
자원 제약
시간 제한 : 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