【发布时间】:2016-05-07 12:23:06
【问题描述】:
这个练习的重点是将一个数字的一个数字乘以它的当前位置,然后将它与其他数字相加。 示例:1234 = 1x4 + 2x3 + 3x2 + 4x1。我使用 2 个参数成功完成了这段代码,现在我尝试用 1 来完成。我的想法是使用 - return num + mult(a/10) * (a%10) 并得到答案,因为从 return num + mult(a/10) 我得到值 1,2,3 ,4- (1 表示 mult(1),2 表示 mult(12),等等) 表示 num,但我注意到这仅适用于 mult(1) 然后递归得到 mult(12)、mult(123)、mult(1234) 的错误值。 我的想法是独立地将值相乘 来自 'num' 和 a%10 。对不起,如果我不能很好地解释自己,但我对编程还是很陌生。
#include <iostream>
using namespace std;
int mult(int a){
int num = 1;
if (a==0){
return 1;
}
return ((num + mult(a/10)) * (a%10));
}
int main()
{
int a = 1234;
cout << mult(a);
return 0;
}
【问题讨论】:
-
我知道,告诉我的导师。但不难猜到,在 1x4 中,4 代表位置而不是数字..