gpt4 book ai didi

c++ - 代码块 C++ 异常

转载 作者:行者123 更新时间:2023-11-28 02:55:25 25 4
gpt4 key购买 nike

这段代码有问题:

#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>

using namespace std;

long long addV(int i) {
return pow(10,i);
}

int len;

void recurse(int n,long long &ways,int values[],int current=0,int p=0) {
if(p>len) return;
if(current>n) return;
if(current ==n) {
ways++;
return;
}
int cv = n-current;
cv/=values[p];

for(int i=0;i<=cv;i++) {
recurse(n,ways,values,current+values[p]*i,p+1);
}
}


int main() {
int n;
cin>>n;
long long ways=0;
int values[] ={1,2,3};
len = sizeof(values)/sizeof(int);
recurse(n,ways,values);
cout<<ways;
}

异常来自 (cv/=values[p];) 行。当然,糟糕的 CodeBlocks 永远不会显示异常是什么。我确信它很容易修复。

最佳答案

if(p>len)return;

事实上,当 p == len 时,您已经越界访问了。您需要返回一次 p >= len

关于c++ - 代码块 C++ 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22128559/

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