gpt4 book ai didi

c++ - map(long long int,long long int) 不适用于 key=1000 000 000(在 long long int 的范围内)

转载 作者:太空宇宙 更新时间:2023-11-04 14:47:01 26 4
gpt4 key购买 nike

最近问了一个关于递归导致这个问题的问题

注意-> count() 函数返回键 K 在 map 容器中出现的次数。如果键存在于容器中,则返回 1,因为映射仅包含唯一键。如果 map 容器中不存在键,则返回 0。它通过了几乎所有的测试用例,但未通过 1 000 000 000根据 long long int 范围值,它也应该通过这个,但它给出一些负值作为输出;我认为这是容器映射的问题谁能帮我看看 map 有什么问题吗?

    #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;
}

}

最佳答案

问题是您的函数 exchange - 它返回 int,这是一个比 long long int 更窄的类型。

关于c++ - map(long long int,long long int) 不适用于 key=1000 000 000(在 long long int 的范围内),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54088801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com