Funkcja rekurencyjna

pulpet123
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 21 paź 2009, o 19:12
Płeć: Mężczyzna
Lokalizacja: Białystok
Podziękował: 4 razy

Funkcja rekurencyjna

Post autor: pulpet123 »

Musze napiszac program. Kompletnie nic mi nie wychodzi :
-ma byc zapis z funkcją rekurenyjną
-oczywiscie w C++

\(\displaystyle{ F( n )=1 \cdot 2 + 2 \cdot 3 + 3 \cdot 4 + ...+ (n-1) \cdot n}\) dla \(\displaystyle{ n>1}\) oraz \(\displaystyle{ F(1)=1}\)
Zapisz funkcję \(\displaystyle{ F( n )}\) w sposób rekurencyjny i oblicz wartość \(\displaystyle{ F( n )}\) dla dowolnego \(\displaystyle{ n>0}\)

Kod: Zaznacz cały

#include<iostream>
using namespace std;
int f(int n)
{ 
    if (n<2) return 1;
    else return f(n-1)+((n-1)*n);  
}
int main()
{
    int a;
    cin>>a;
    
    cout<< f(a);
    getchar(); getchar();
    return 0;
}
napisalem narazie to ale pokazuje złe liczby
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

Funkcja rekurencyjna

Post autor: matshadow »

Kod: Zaznacz cały

#include<iostream>
using namespace std;
int f(int n)
{
    if(n==1) return 0;
    else return f(n-1)+((n-1)*n); 
}
int main()
{
    int a;
    cin>>a;
    if(a==1) cout<<1<<endl;
    else  cout<< f(a)<<endl;
    system("pause");
    return 0;
}
exother
Użytkownik
Użytkownik
Posty: 97
Rejestracja: 28 wrz 2009, o 15:01
Płeć: Mężczyzna
Podziękował: 3 razy
Pomógł: 9 razy

Funkcja rekurencyjna

Post autor: exother »

@up
niby tak, ale mógłbym się przyczepić, że twoja funkcja f dla n=1 zwraca 0 ;]

Kod: Zaznacz cały

#include <iostream>
#include <stdio.h>
using namespace std;

int f(int n, int i)
{
    i++;
    if (n<2){
      if(i<2){
			return 1;
      }else{
			return 0;
      }
    }else{
      return f(n-1,i)+((n-1)*n); 
    }
}
int main()
{
    int a;
    int i=0;
    cin>>a;
   
    cout << f(a,i) << endl;
    getchar(); getchar();
    system("pause");
    return 0;
}
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

Funkcja rekurencyjna

Post autor: matshadow »

ja na to patrzę pod kątem zadania konkursowego - dla wejścia 1 dostaję 1, więc nikt nie pyszczy
ODPOWIEDZ