【发布时间】:2022-01-02 11:33:41
【问题描述】:
如何将p 的值更改为1,将其作为参数传递给递归函数。
这是我的代码:
class Solution
{
void g(int n,int k,int *p){
if(k==0) return;
if(k%n==0) g(n,k-1,1);
cout<<p<< endl;
g(n,k-1,p+1);
}
public:
int josephus(int n, int k)
{ int p=1;
g(n,k,&p);
return p;
}
};
我得到这个错误:
prog.cpp: In member function void Solution::g(int, int, int*):
prog.cpp:14:21: error: invalid conversion from int to int* [-fpermissive]
if(k%n==0) g(n,k-1,1);
^
prog.cpp:12:9: note: initializing argument 3 of void Solution::g(int, int, int*)
void g(int n,int k,int *p){
【问题讨论】:
-
为什么要用指针?
-
尝试参考。并编写一些测试。
-
@outis 从表面上看,您发现的问题在标题中提出了类似的问题。但是,帖子中的问题本身似乎与此问题无关。
-
@jxh:相反,两个问题都传递了
int,而不是使用指针来存储整数表达式的结果,然后传递指针。这两个问题都使用指针传递引用,并且都与递归函数有关。不同的是确切的表达方式,但这不足以使问题不重复。