본문 바로가기
알고리즘

C++ 별찍기

by Chars4785 2018. 12. 18.
#include <iostream>

using namespace std;

int main() {

cout << "2번 별을 출력하는 프로그램\n\n";



for (int i = 0; i <= 9; i++)
{
for (int k = 0; k <= 8-i; k++)
{
cout << " ";
}


for (int j = 0; j <= i; j++)
{
cout << "*";
}
cout << "\n";

}

cout << "\n";

}



생각보다 쉽지만 생각하게 만드는 부분이다. 


                  * 

                * * 

              * * * 

            * * * * 

          * * * * * 

        * * * * * * 

      * * * * * * * 

    * * * * * * * * 

  * * * * * * * * * 

* * * * * * * * * * 



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


처음은 시작부분 뒤에는 끝나는 것을 설정 할수 있다.

둘의 간격 차이를 유지하면서 변화 시키면 된다. 


i=0 -> 9 까지

i=-1 -> 8 까지


이런식으로 간격에 대한 생각은 계속 해줘야 한다.



#include <iostream>

using namespace std;

int main() {

int num;

cin >> num;


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

for(int j=0; j < (num-i)-1;j++)
cout<<" ";

for(int j=0;j<2*i+1;j++)
cout<<"*";
cout<<endl;

}

cout << "\n";

}


홀수 별을 출력하기 위해서는 등차수열을 생각하면 된다. 


num: 4


공백: 3, 2 ,1 

별 :1, 3, 5


별의 개수는 2k+1 이 되기 때문에 


첫항은 1이고 등차는 2가 되는 식이 된다. 


하지만 카운팅이 n=0 부터 시작하기 때문에 일반식은 2(k+1)-1  이 된다. 








   

'알고리즘' 카테고리의 다른 글

C++ 재귀  (0) 2018.12.24
C++ 뒤집기 ( 2차 배열 함수 파라미터 )  (0) 2018.12.24
C++ 카드게임  (0) 2018.12.20
C++ 두번째로 작은 수 찾기  (0) 2018.12.20
C++ 소수 뽑기  (0) 2018.12.20

댓글