문제
두 정수 N과 F가 주어진다. 지민이는 정수 N의 가장 뒤 두 자리를 적절히 바꿔서 N을 F로 나누어 떨어지게 만들려고 한다. 만약 가능한 것이 여러 가지이면, 뒤 두 자리를 가능하면 작게 만들려고 한다.
예를 들어, N=275이고, F=5이면, 답은 00이다. 200이 5로 나누어 떨어지기 때문이다. N=1021이고, F=11이면, 정답은 01인데, 1001이 11로 나누어 떨어지기 때문이다.
입력
첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다.
출력
첫째 줄에 마지막 두 자리를 모두 출력한다. 한자리이면 앞에 0을 추가해서 두 자리로 만들어야 한다.
문제풀이
n을 입력받고 n을 100으로 나눈 몫에 100을 곱해서 n의 뒷 두자리를 00으로 초기화 시킨다. 그리고 while문을 n%f의 값이 0이 될 때까지 실행시킨다. 0이 아니라면 n을 1씩 더해가며 f로 나누어떨어지는 값을 찾는다. 찾으면 뒷두자리수만 출력하면 되기 때문에 n을 100으로 나눈 나머지 값을 n에 저장한다.
한자리면 앞에 0을 추가해주고 아니면 n 그대로 출력해준다.
#include <iostream>
using namespace std;
int main(){
int N, F, temp;
cin >> N >> F;
N /= 100; //뒷 두자리빼고 나머지 앞자리들 남기는 작업
N *= 100; // 뒷 두자리 00으로 초기화
while (N%F != 0) N++;
N %= 100; // while문에서 조건을 불충족시켜 나온 N의 값에서 뒷 두자리 추출
if (N<10) cout << "0" << N <<endl;
else cout << N <<endl;
return 0;
}
'백준풀기' 카테고리의 다른 글
[c++] 백준 2869번 달팽이는 올라가고 싶다 (0) | 2024.02.02 |
---|---|
[c++] 백준 1152번 단어의 개수 (cin과 getline의 차이) (1) | 2024.01.31 |
[c++] 백준 1085번 직사각형에서 탈출 (1) | 2024.01.31 |
[c++] 백준 1598번 꼬리를 무는 숫자 나열 (0) | 2024.01.31 |
[c++] 백준 1547번 공 (1) | 2024.01.31 |