메뉴 건너뛰기

입력받은 양의 정수의 각 자리 수를 곱한다.

이 때, 0은 곱하지 않는다.

곱한 수가 2자리 이상일 때는 다시 각 자리 수를 곱한다.

곱한 수가 1자리 숫자이면 값을 출력하고 프로그램을 종료한다.

 

#include <iostream>

 

using namespace std;

 

int main() {

int n = 15;

 

int mid = n / 2;

 

int boundaryX1 = 0;

int boundaryX2 = 0;

int boundaryY1 = 0;

int boundaryY2 = 0;

 

int** arr = new int* [n];

 

for (int i = 0; i < n; i++)

arr[i] = new int[n];

 

for (int i = 0; i < n; i++)

for (int j = 0; j < n; j++)

arr[i][j] = 0;

 

for (int i = 0; i < n; i++) {

for (int j = 0; j < n; j++) {

cout << arr[i][j] << " ";

}

cout << endl;

}

 

for (int i = 1; i <= mid; i += 2) {

boundaryX1 = mid - i;

boundaryX2 = mid + i;

boundaryY1 = mid - i;

boundaryY2 = mid + i;

 

int x = boundaryX1;

int y = boundaryX1;

int xInc = 0;

int yInc = 1;

 

while (true) {

arr[x][y] = 1;

x += xInc;

y += yInc;

 

if (y == boundaryY2) {

xInc = 1;

yInc = 0;

}

if (x == boundaryX2) {

yInc = -1;

xInc = 0;

}

if (y == boundaryY1) {

xInc = -1;

yInc = 0;

}

 

if (x == boundaryX1 && y == boundaryY1)

break;

}

}

 

for (int i = 0; i < n; i++) {

for (int j = 0; j < n; j++) {

cout << arr[i][j] << " ";

}

cout << endl;

}

}