我的作业是编写一个递归函数来将两个数字相乘,仅使用加法函数 ++
和 --
。我的附加功能是:
public static int peanoplus(int x, int y) {
if(y==0) return x;
else return peanoplus(++x,--y);
}
到目前为止,我的乘法函数是:
public static int peanotimes(int x, int y)
{
if(y==0) return x;
else return peanotimes(peanoplus(x,x),--y);
}
我不太确定在 peanotimes
函数的第一个参数中输入什么内容。现在的问题是我将数字加倍,而不是将其添加到原始数字。我知道我需要维护 x 变量,以便递归调用可以继续添加原始数字(而不是每次都加倍),但是我实际上在哪里添加数字呢?
我找到了this这与我的问题非常相似,但即使有了这些提示,我也无法找到解决方案。
最佳答案
if( y == 0 || x == 0 ) { return 0; }
else { return peanoplus(x, peanotimes(x,--y)); }
关于java - 使用增量的乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25907759/