[BOJ/C++] 1527 금민수의 개수

Hanbi·2022년 4월 27일
0

Problem Solving

목록 보기
18/108
post-thumbnail

문제

https://www.acmicpc.net/problem/1527

풀이

A~B 사이의 수가 4와 7로 이루어져있는지 탐색하는 것은 시간초과
➡️4와 7로 구성된 숫자를 만들면서 이 숫자가 A~B 사이에 있는지 확인(⭐재귀)

⚠️overflow를 방지하기 위해 long long형 변수를 매개변수로 전달해야 함

코드

#include <iostream>
using namespace std;

int A, B;
long long result;

void myfind(long long num) {
	if(num > B)	return;
	if(num >= A && num <= B)	result++;
	
	myfind(10*num + 4);
	myfind(10*num + 7);
}

int main() {
	
	cin >> A >> B;
	
	myfind(4);
	myfind(7);
	
	cout << result << endl;
	
	return 0;
}
profile
👩🏻‍💻

0개의 댓글