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?
Pomoc w zadaniu
- Rejestracja: dni
- Ostatnio: dni
... to iloczyn, czego konkretnie nie rozumiesz?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6
#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.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 473
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 *=?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6
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.
- Rejestracja: dni
- Ostatnio: dni
#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ć.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6
@_13th_Dragon Twój kod również zwraca 0 za każdym razem :/
- Rejestracja: dni
- Ostatnio: dni
- Postów: 39
#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;
}