본문 바로가기
프로그램/C++ 1000제

C++ 40제] vector 사용, 입력 정수까지 조건에 맞게 출력하시오.

by 건티 2022. 6. 9.
728x90

출처 : 반크_세계유산 석굴암

 

문제]

임의의 정수를 입력하여 1에서 부터 임의의 수까지 중 조건에 맞게 출력하는 프로그램을 작성하시오.

조건)

1. 4의 배수를 출력하시오.

2. 4의 배수 중 100의 배수는 출력하지 마시오.

3. 4의 배수 중 400의 배수는 출력하시오.

4. 한라인에 10개씩 일정한 간격으로 출력하시오.

5. 임의의 정수 N은 400<=N<=2147483647의 범위로 하시오.

 

참고풀이]

#include <iostream>
#include <vector>
#include <iomanip> //setw()
using namespace std;

int JariSu(int k)
{
   int x;//자리수 변수
   int y;//입력수까지 증가할 변수

   for(x=y=1;y<k;y*=10) x++;

   return x;
}

int main()
{
   vector<int> v; //vector 변수를 선언한다. 
   int N;//입력변수 
   int i;//증가값 및 vector 인덱스 변수 
   int J;//일정한 간격으로 출력할 변수 
 
   //400<=N<=2147483647의 범위의 수를 입력받는다.
   cout << "400이상의 정수를 입력하시오 : ";
   cin >> N;

   if(N>=400 && N<=2147483647)
   {
      //조건에 맞는 수를 vector 변수에 입력한다.
      for(i=1;i<=N;i++)
         if((i%4==0 && i%100!=0) || i%400==0)
            v.push_back(i);

      //결과 출력
      J=JariSu(N);
      for(i=0;i<v.size();i++)
      {
         cout<<setw(J);
         if((i+1)%10) cout << v[i];
         else cout << v[i] << endl;
      }
   }

   return 0;
}

 

참고풀이 결과]

 

 

 

 

대한민국의 아름다운 영토, 독도의 겨울

 

반응형

댓글