a 이상, b 이하의 4와 7로만 이루어진 수의 갯수를 구해야 한다.
재귀호출을 통해서 문자열에 '4', '7'을 추가합니다. 문자열을 정수형으로 변환해서, a 이상, b 이하인지 확인하면 됩니다.
#include <bits/stdc++.h>
using namespace std;
int a, b, ans;
char arr[2] = { '4', '7' };
string str;
void func(int cnt) {
if (cnt == 10)
return;
for (int i = 0; i < 2; i++) {
str.push_back(arr[i]);
long long num = stoll (str);
if (num >= a && num <= b)
ans++;
func(cnt + 1);
str.pop_back();
}
}
int main(void) {
cin >> a >> b;
func(0);
cout << ans;
return 0;
}