Policz iloczyn wszystkich liczb nieparzystych z domkniętego przedziału liczb całkowitych [ pierwsza .. ostatnia ].
Wartości zmiennych pierwsza, ostatnia należy wczytać z klawiatury.
Tak spróbowałam poradzić sobie z tym problemem:
#include <iostream>
using namespace std;
int iloczyn(int a, int b);
int main()
{
int a, b;
cout << "Podaj przedzial [a,b]" << endl;
cout << "a=";
cin >> a;
cout << "b=";
cin >> b;
cout << iloczyn(a, b) << endl;
return 0;
}
int iloczyn(int a, int b)
{
int suma = 1;
if (a % 2 == 0 && b % 2 == 0) //dwie parzyste
{
for (int i = a; i < b; i += 2)
{
suma *= (i+1);
}
}
if (a % 2 == 1 && b % 2 == 0) //a nieparzyste, b parzyste
for (int i=a; i < b;i+=2)
{
suma *= i;
}
if (a % 2 == 0 && b % 2 == 1) //a parzyste, b nieparzyste
{
for (int i = a; i <= b; i += 2)
{
suma *= (i + 1);
}
}
if (a % 2 == 1 && b % 2 == 1) //obydwie nieparzyste
{
for (int i = a; i <= b; i += 2)
{
suma *= i;
}
}
return suma;
}
Co myślice o takim rozwiązaniu? Przekombinowane, czy przyzwoite? Czy może jest jakiś prostszy sposób rozgryzienia tego zadania?