Кам мне эту функцию реализировать в код для программы с рекурсивной функцией для умножения двух чисел А*В используя только операцию сложения. с++
int main()
{
{
int a, b;
cout << "Enter a, b";
cin >> a >> b;
cout << func( a, b );
}
return 0;
}
Ответы (2 шт):
Автор решения: Harry
→ Ссылка
Так годится?
int prod(int a, int b)
{
if (a == 0 || b == 0) return 0;
if (a < 0) return -b + prod(-a-1,-b);
return b + prod(a-1,b);
}
int main()
{
int a,b;
cin >> a >> b;
cout << prod(a,b);
}
Впрочем, более эффективно так:
int prod(int a, int b)
{
if (a == 0 || b == 0) return 0;
int sign = 1;
if (a < 0) { sign = -sign; a = -a; }
if (b < 0) { sign = -sign; b = -b; }
if (a > b) { int t = a; a = b; b = t; }
return sign*(b + prod(a-1,b));
}
Автор решения: FauDva
→ Ссылка
мой вариант:
int func(int a, int b) {
int sum = 0;
for (int i = 0; i < b; i++)
sum += a;
return sum;
}
int main()
{
int a, b;
std::cout << "Enter a, b\n";
std::cin >> a >> b;
std::cout << func(a, b);
return 0;
}