24.2.3.24011210. Napisati sljedeće rekurzivne funkcije:
- Funkciju “SumaKubova“ koja računa zbir kubova svih brojeva od 1 do N gdje je N prirodan broj prosljeđen kao parametar;
- Funkciju “SumaCifara“ koja računa zbir cifara prirodnog broja N prosljeđenog kao parametar;
- Funkciju “Stepen“ sa dva parametra “X“ i “N“ od kojih je prvi realni broj a drugi cijeli broj, a koja računa vrijednost stepena XN (voditi računa da “N“ može biti i negativan);
- Funkciju “NZD“ sa dva cjelobrojna parametra “A“ i “B“ koja računa najveći zajednički djelilac brojeva A i B;
- Sve funkcije treba da budu napisane u čisto rekurzivnom stilu, bez ikakve upotrebe petlji. Napisane funkcije testirati u kratkom testnom programu (“main“ funkciji) u kojem će se svaka od napisanih funkcija pozvati
Opis rješenja:
Listing programa:
#include <iostream>
#include <conio.h>
using namespace std;
int SumaKubova(int n){
if(n==1)return 1;
return n*n*n+SumaKubova(n-1);
}
int SumaCifara(int n){
if(n/10)return n%10+SumaCifara(n/10);
return n%10;
}
double Stepen(double x,int n){
if(x==0)return 0;
if(n==0)return 1;
if(n<0)return (1/x)*Stepen(1/x,-n-1);
else return x*Stepen(x,n-1);
}
int NZD(int a,int b){
if((a%b)==0)return b;
return NZD(b,(a%b));
}
int main(){
int n1,n2;
double x;
cout<<"\n Unesite broj iz N za koji zelite sumu kubova od 1 do tog broja(ukljucivo),\n"
<<"kao i zbir nj cifara:\n";
cin>>n1;
cout<<SumaKubova(n1)<<endl<<SumaCifara(n1)<<endl
<<"\n Unesite broj iz R i nj odgovarajuci exponent iz Z i dobicete nj stepen...:\n";
cin>>x>>n2;
cout<<Stepen(x,n2)
<<"\n\n Unesite dva broja iz Z i dobicete njihov NZD:\n";
cin>>n1>>n2;
cout<<NZD(n1,n2);
getch();
return 0;
}
Izvođenje programa:
Riješeni zadaci 2 Index
|
|