Witam czy mógłby mi ktoś pomóc i wyjawić schamat jak robić tego typu zadania za pomocą pętli for? co znaczyu ten znak pi?
... to iloczyn, czego konkretnie nie rozumiesz?
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int m;
int n;
double liczba;
double suma=0;
cout<<"Podaj m: ";
cin>>m;
cout<<"Podaj n: ";
cin>>n;
for(int i=pow(m,2);i<=n; ++i)
{
double liczba=(i-3)/(4*i-1);
suma*=liczba;
}
cout<<suma;
}
Napisałem taki kod, ale wyświtla 0 za każdym razem.
double liczba;
Po co skoro w pętli for deklarujesz tą zmienną jeszcze raz
(i-3)/(4*i-1)
wychodzi ci zero jeśli i
jest typu int bo wtedy zaokrągla wynik w dół; rozwiązanie: castuj dzielną lub dzielnik do double, poczytaj o static_cast
; natomiast nie deklaruj i
jako double
EDIT!!!
suma*=liczba;
na pewno *=
?
Czy mógłbyś mi napisać ten kod, bez używania static_cast? Byłbym bardzo wdzięczny. Potrzebuje to ogarnąć na sprawdzian który mam jutro.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int m,n;
double suma=1;
cout<<"Podaj m: ";
cin>>m;
cout<<"Podaj n: ";
cin>>n;
for(int i=m*m;i<=n;++i) suma*=(i-3)/(4.0*i-1);
cout<<3*suma;
return 0;
}
pow(b,e)
przeważnie obliczane jako exp(e*ln(b))
- więc o ile wykładnik nie jest ułamkowy - nie ma sensu używać.
@_13th_Dragon Twój kod również zwraca 0 za każdym razem :/
#include <iostream>
using namespace std;
int main() {
int n,m,mq;
float result = 1;
cin >> n >> m;
mq = m*m;
for (int i=m*m; i<n; i++){
result*=(float)(i - 3)/(4*i -1 );
}
result*=3;
cout <<"Wynk:"<<result;
return 0;
}
Rzeczywiści zwraca 3 w większości :/
Dzięki, dobzi ludzie. :D