자이의 프로그래밍
Array3 본문
문제
N이 주어질 때, 다음과 같은 프로그램을 작성해보자.
입력
첫째 줄에 자연수 N이 주어진다.(1<=N<=100)
출력
예시를 참고하여 작성하자.
예제 입력
3
예제 출력
1 2 4
3 5
6
예제 입력
5
예제 출력
1 2 4 7 11
3 5 8 12
6 9 13
10 14
15
------------------------------------------------------------------------------------------------------------------------------
첫 숫자는 1로 고정되어 있음
1행일때 +1, +2, +3, +4...의 형식, 2행일때 +2, +3, +4..의 형식
행이 늘어날수록 출력하는 숫자의 갯수는 하나씩 작아짐
각 행의 첫번째 숫자는 각각 행의 첫번째 숫자에서 +2, +3, +4... 의 형식
#include <iostream>
using namespace std;
int main()
{
int num;
cin >> num;
int colnum = num;
int firstnum = 1;
int printnum = 1;
for (int a = 0; a < num; a++) {
if (printnum != firstnum) {
printnum = firstnum + a + 1;
firstnum = printnum;
}
for (int b = 0; b < colnum; b++) {
if (b == 0) cout << printnum << " ";
else
cout << printnum +a+ b << " ";
printnum = printnum + b;
}
cout << endl;
colnum--;
}
return 0;
}
예전에 다른 방식으로 풀었던 코드도 첨부
#include <iostream>
using namespace std;
int main() {
int N;
cin>>N;
int Array[N][N];
int Unit=1;
int Standard=1;
int Number=1;
int row=1;
for(int i=0;i<N;i++)
{
for(int j=0; j<N; j++)
{
if(i==0)
{
Array[i][j]=Number;
Number=Number+Unit;
Unit++;
//1 1+1 1+1+2;
}
else if(j==0)
{
Standard=Standard+i+1;
Number=Standard;
Array[i][j]=Number;
Number=Number+i+1;
}
else
{
Array[i][j]=Number;
Number=Number+i+j;
Number++;
}
}
}
int a=0;
//Please Enter Your Code Here
for(int i=0; i<N; i++)
{
for(int j=0; j<N-a; j++)
{
cout<<Array[i][j]<<" ";
}
cout<<endl;
a++;
}
return 0;
}