Wątek przeniesiony 2018-12-09 15:08 z C/C++ przez kq.

Mały fragment kodu w C++

Odpowiedz Nowy wątek
2018-12-09 15:22
0

Problem jest banalny. Nie jestem programistą i z tego względu zwracam się o pomoc do Kogoś z Was.
Czemu banalny? Bo chodzi o napisanie dwóch kodów, które mógłbym sobie przeanalizować lub zmodyfikować wedle uznania.
Kto by mi pomógł zaimplementować dodawanie rekurencyjne dwóch liczb naturalnych.
Ja mam coś takiego, ale nie wiem czy to do końca się nadaje. Najlepiej C++

funkcja x = suma (m,n) 
if n<= 0 
x=m; 
else 
r=m+suma(m+1,n-1);
end
end

Czy ktoś by pomógł jak można pokazać rekurencyjnie mnożenie dwóch liczb naturalnych

potęga to na przykład takie coś:
potęga (x,n) to : 1 kiedy n=0 , x * potęga (x,n-1) kiedy n>0

a mnożenie: 0 kiedy n=0 , m kiedy n=1, mnoz(m,n-1)+m kiedy n>0 i n różny od 0 .

Może Ktoś pomoże bym mógł poddać problem do swojej analizy:)

edytowany 1x, ostatnio: furious programming, 2018-12-09 15:25

Pozostało 580 znaków

2018-12-09 16:16
1

Tu Masz programik:

#include <iostream>

int recursive_add(int n, int a);
int recursive_mul(int n, int a);

int main(){
    std::cout << recursive_add(0, 1) << "\n"; // -> 1
    std::cout << recursive_add(2, 1) << "\n"; // -> 3
    std::cout << recursive_mul(0, 1) << "\n"; // -> 0
    std::cout << recursive_mul(3, 2) << "\n"; // -> 6
    return 0;
}

int recursive_add(int n, int a){
    if (n == 0)
        return a;
    else
        return 1 + recursive_add(n - 1, a);
}

int recursive_mul(int n, int a){
    if (n == 0) 
        return 0;
    else
        return a + recursive_mul(n - 1, a);
}

Funkcie implementują bezpośrednio definicje rekurencyjne:

  • dodawania:
    0 + a = a
    (1 + n) + a = 1 + (n + a);
  • mnożenia:
    0a = 0
    (1 + n)a = a + na;
    To ostatnie, można mocno ulepszyć:)

https://en.wikipedia.org/wiki/Recursive_definition


edytowany 1x, ostatnio: lion137, 2018-12-09 16:17
LOL, to było w ogłoszeniach drobnych! Ale za takie coś i tak bym nie wziął pieniędzy:) - lion137 2018-12-09 16:42
Nie było ;p Wątek przeniesiony wczoraj, 16:08 z C/C++ przez kq. Powód: Niepoprawna kategoria forum - hugarili 2018-12-10 18:32

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0