Недавно я задал вопрос, но о рекурсии, которая порождает эту проблему
Примечание-> count () Функция возвращает количество раз, когда ключ K присутствует в контейнере карты. Возвращает 1, если ключ присутствует в контейнере, поскольку карта содержит только уникальный ключ. Возвращает 0, если ключ отсутствует в контейнере карты.
Он проходит почти все тестовые случаи, но не проходит 1 000 000 000
в соответствии с длинным длинным значением int, он также должен пройти этот, но это
какое-то отрицательное значение в качестве выхода;
Я думаю, что это проблема с картой контейнера
Кто-нибудь может мне помочь, что не так с картой?
#include<bits/stdc++.h>
using namespace std;
map <long long int,long long int> dp;
int exchange(long long int n){
if(n<12)
return n;
if(dp.count(n))
return dp[n];
return dp[n] = exchange(n/2)+exchange(n/3)+exchange(n/4);
}
int main(){
// int t;
// cin>>t;
while(1){
// memset(dp,-1,sizeof(dp));
long long int n;
cin>>n;
cout<<exchange(n)<<endl;
}
}