De ce nu merge?
#include
int c;
//functii
int fact(int n);
int expresie(int E);
int main(void)
{
int n,E,p;
printf("Introduceti numarul natural: ");
scanf("%d",&n);
printf("E=%d",expresie(E));
}
//functia fact
int fact(int n)
{
int p[n];
for(n=1;n<=c;n++)
{
p[n]=n*fact(n-1);
}
return p[n];
}
//functia expresie
int expresie(int E)
{
int n;
int sum=0;
for(n=1;n<=c;n++)
{
sum+=fact(n);
}
return sum;
}
Asta se cere: Scrieţi un program care pentru un număr n natural introdus de la tastatură calculează valoarea expresiei: E= 1!+ 2!+......+n!. Se vor folosi două funcții recursive una pentru calculul factorialului unui număr și o alta pentru calculul expresiei.
Răspunsuri la întrebare
Răspuns de
1
Dau solutie in REXX. Note: Parse este instructie ca numeste un parametru.
expr: procedure
parse arg e
in C sa scrie:
int expr(int e){
Cred ca idea este clar.
/* */main:
pull n
say expr(n)
exit
expr: procedure
parse arg e
if e > 1
then return fac(e) + expr(e-1)
else return fac(e)
fac: procedure
parse arg f
if f > 1
then return f * fac(f-1)
else return f
expr: procedure
parse arg e
in C sa scrie:
int expr(int e){
Cred ca idea este clar.
/* */main:
pull n
say expr(n)
exit
expr: procedure
parse arg e
if e > 1
then return fac(e) + expr(e-1)
else return fac(e)
fac: procedure
parse arg f
if f > 1
then return f * fac(f-1)
else return f
catalinmorar:
Perfect...Mersi mult.
Alte întrebări interesante
Franceza,
8 ani în urmă
Biologie,
8 ani în urmă
Geografie,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă