rekurencja
c++: czy ktos zna sie na programowaniu z informatyki?
mam problem. gdy piszę funkcję rekurencyjną, nie chce mi wyświetlać liczby z przecinkiem, czyli
zamiast np. 0.2, wyswietla 0.
C++
czy ktos ma jakis pomysł?
5 lut 19:07
PW: Jedno jest pewne: masz jakiś błąd. Ale jak go pokazać, gdy nie widzimy kodu?
5 lut 19:17
c++: #include <iostream>
#include <cmath>
using namespace std;
int qw (double n);
int qw (double n)
{
if (n>0)
{
if(n==1)
return 1;
else
return qw((n−1)/(2.0)); ///////tutaj cały czas zmieniam, gdyz nie wychodzi tyle ile powinno
}
}
int main(int argc, char** argv) {
int x;
cout<<"Podaj liczbe: "<<endl;
cin>>x;
cout<<qw(x);
return 0;
}
ogolem chodzi o to aby z ciagu: 1,1/2,1/4,1/8,1/16 itd. utworzyc funkcje rekurencyjna, jasne
wszystko?
5 lut 19:25
c++: z tymi doublami na poczatku to tez kombinuję
5 lut 19:26
sisis: mam, znalazłam bład
5 lut 19:33
c++: ja tez
5 lut 19:33
Mariusz:
Z tymi argumentami to powinno być odwrotnie
tzn zwracany powinien być typ double a argumentem powinien być typ int
poza tym w wywołaniu rekurencyjnym argument funkcji powinien wynosić tylko n−1
a dzielenie przez 2 powinno być poza argumentem funkcji
15 lut 06:35
Mariusz:
Wypisywanie wartości proponowałbym zrealizować w pętli for
15 lut 06:38