C++ problem sa rekurzijom

poruka: 4
|
čitano: 2.297
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
C++ problem sa rekurzijom

molio bih pomoć oko konkretnog zadatka. riješio sam zadatak, ali sad bih ga htio riješit pomoću rekurzije i nikako mi ne ide.

ako netko zna molio bih da mi objasni.

evo zadatka.

 

 U main funkciji učitajte svoje ime i prezime i u funkciji suma pronađite sumu ASCII kodova upisanog imena i prezimena,
te u funkciji pretvori  pretvorite dobivenu sumu u sustav s bazom 18. Ispišite dobivenu sumu kodova i dobiveni njen
ekvivalent u sustavu s bazom 18.

 

#include "stdafx.h"
#include <iostream>

using namespace std;
using namespace System;


int suma(char ImePrezime[])
{
    int i,s=0;
    for(i=0;i<strlen(ImePrezime);i++)
    {
       s+=ImePrezime[i];
    }
    return s;
}
void pretvori(int broj)
{
    if(broj/18>0)
       pretvori(broj/18);
    switch(broj%18)
    {
    case 10:cout<<"A";
       break;
    case 11:cout<<"B";
       break;
    case 12:cout<<"C";
       break;
    case 13:cout<<"D";
       break;
    case 14:cout<<"E";
       break;
    case 15:cout<<"F";
       break;
    case 16:cout<<"G";
       break;
    case 17:cout<<"H";
       break;
    default:cout<<broj%18;
    }
}

int main()
{
    char ImePrezime[50];
    cout<<"Unesite svoje ime i prezime: ";
    cin.getline(ImePrezime,49);
    if(cin.gcount()==1)
       cin.getline(ImePrezime,49);

    cout<<"Suma ASCII kodova iznosi: "<<suma(ImePrezime)<<endl;
    cout<<"Ekvivalent sume ASCII kodova je: ";
    pretvori(suma(ImePrezime));
    cout<<endl;
    system("pause");
    return 0;
}

 
0 0 hvala 0
17 godina
offline
C++ problem sa rekurzijom

Rekurzija je pozivanje neke funkcije u njoj samoj. Sigurno si to htio? Ako da, reci gdje točno...

The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
 
0 0 hvala 0
17 godina
neaktivan
offline
RE: C++ problem sa rekurzijom

 

void pretvori (int broj, int baza)

{

if (broj>=baza)

pretvori(broj/baza,baza);

if (broj%baza>=10)

cout<<char(broj%baza+55);

else

cout<<broj%baza;

}

 

Ako mislis na ovo pretvaranje onda ovo ti je jedna jednostavna rekurzivna funkcija za bilo koju bazu...nemoras switch case koristit za slova, nego je ovdje rjeseno preko ascii koda (ovaj +55)

15 godina
neaktivan
offline
C++ problem sa rekurzijom

e ne znam gdje točno. uglavnom mi je rečeno da ju napišem pomoću rekurzije.

a i ono za +55 nisam znao.

hvala

 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice