C:\Program Files\CodeBlocks\sushuji\main.cpp|6|error: return-statement with no value, in function returning 'int' [-fpermissive]|
时间: 2023-12-05 12:03:17 浏览: 168
无返回值函数 求素数.cpp
在你提供的代码中,问题出现在递归函数的返回类型不匹配。在C++中,你的递归函数getResult返回的是long long类型,而在翻译后的代码中,递归函数getResult返回的是int类型。这导致了编译错误。
为了解决这个问题,你需要将递归函数getResult的返回类型改为int,以与翻译后的代码匹配。修改后的代码如下:
```cpp
#include <iostream>
using namespace std;
void recursive(long long num, int count, int& ans) {
if (num == 1) {
ans = min(ans, count);
return;
}
if (num % 2 == 0) {
recursive(num / 2, count + 1, ans);
} else {
recursive(num + 1, count + 1, ans);
recursive(num - 1, count + 1, ans);
}
}
int getResult(long long num) {
int ans = INT_MAX;
recursive(num, 0, ans);
return ans;
}
int main() {
long long num;
cin >> num;
cout << getResult(num) << endl;
return 0;
}
```
这样修改后的代码应该可以正确编译和运行。
阅读全文