2448번 - 별 찍기 - 11
1536까지는 잘 출력되다가 3072를 입력하면 런타임 에러가 나네요.
1700을 입력해 봤는데 1700도 런타임 에러가 나요ㅠㅠ
#include char arr[4000][8000] = {};
void StarMaker(int n, int num){
for(int i = 0; i < num; i++){ for(int j = 0; j < num*2-1-i*2; j++) for(int h = 0; h < n/num-1; h++){ for(int k = 0; k < n/num-1; k++) arr[num+num*2*h+i][num+k*num*2+j+i] = 1; } }
if(num < n/2){ num *= 2; StarMaker(n, num); }
}
int main(void){ int n, num = 3;
scanf("%d", &n);
for(int i = 0; i < n-1; i++){ for(int j = 0; j < n-i-1; j++) arr[i][j] = 1;
for(int j = 2*n-2; j > n+i-1; j--) arr[i][j] = 1; }
for(int i = 0; i < n; i++){ for(int j = 0; j < 2*n-1; j++){ if(i%3 == 1 && j%3 == 2) arr[i][j] = 1; } }
StarMaker(n, num);
for(int i = 0; i < n; i++){ for(int j = 0; j < n*2-1; j++){ if(arr[i][j] == 0) printf("*"); else printf(" "); } printf("\n"); }
char arr[4000][8000] <<<< 을
char arr[10000][10000] <<<< 로 바꿔해보니 됩니다.
감사합니다.(ノД`)・゜・。
댓글을 작성하려면 로그인해야 합니다.
mint665 4년 전
1536까지는 잘 출력되다가 3072를 입력하면 런타임 에러가 나네요.
1700을 입력해 봤는데 1700도 런타임 에러가 나요ㅠㅠ
#include
char arr[4000][8000] = {};
void StarMaker(int n, int num){
for(int i = 0; i < num; i++){
for(int j = 0; j < num*2-1-i*2; j++)
for(int h = 0; h < n/num-1; h++){
for(int k = 0; k < n/num-1; k++)
arr[num+num*2*h+i][num+k*num*2+j+i] = 1;
}
}
if(num < n/2){
num *= 2;
StarMaker(n, num);
}
}
int main(void){
int n, num = 3;
scanf("%d", &n);
for(int i = 0; i < n-1; i++){
for(int j = 0; j < n-i-1; j++)
arr[i][j] = 1;
for(int j = 2*n-2; j > n+i-1; j--)
arr[i][j] = 1;
}
for(int i = 0; i < n; i++){
for(int j = 0; j < 2*n-1; j++){
if(i%3 == 1 && j%3 == 2)
arr[i][j] = 1;
}
}
StarMaker(n, num);
for(int i = 0; i < n; i++){
for(int j = 0; j < n*2-1; j++){
if(arr[i][j] == 0)
printf("*");
else
printf(" ");
}
printf("\n");
}
}