Am de rezolvat exercitiul 4 din subiectul 3, varianta 7-2009 si nu-mi da absolut deloc. Aveti cerinta mai jos:
Se consideră şirul definit de relaţia de
recurenţă alăturată: O GASITI IN LINK-UL DE JOS
a) Scrieţi definiţia completă a unui subprogram sub, care primeşte prin intermediul
singurului său parametru n un număr natural de maximum 8 cifre, şi care returnează cel mai mare termen al şirului f care este mai mic sau cel mult egal cu n.
Exemplu: dacă n=83 atunci subprogramul va returna valoarea 80. (4p.)
b) Scrieţi un program C/C++ care citeşte de la tastatură un număr natural s (s≤10000000) şi determină scrierea lui s ca sumă de termeni distincţi ai şirului dat folosind apeluri utile ale subprogramului sub. Numerele astfel determinate se vor scrie pe ecran, pe aceeaşi linie, separate prin câte un spaţiu.
Exemplu: dacă valoarea citită de la tastatură este 63, se va afişa:
40 20 3 (6p.)
http://bacinfo.cnlr.ro/subiecte-bac/2009/e_info_intensiv_c_siii_007.pdf
Răspunsuri la întrebare
Răspuns de
11
#include <iostream>
using namespace std;
int f(int n)
{
if(n<=5)
return n;
else
return 2*f(n-1);
}
int sum(int n)
{
int c=0;
while(f(c)<=n)
{
c++;
}
return f(c-1);
}
int main()
{
int s;
cin>>s;
while(s)
{
cout<<sum(s)<<" ";
s-=sum(s);
}
return 0;
}
using namespace std;
int f(int n)
{
if(n<=5)
return n;
else
return 2*f(n-1);
}
int sum(int n)
{
int c=0;
while(f(c)<=n)
{
c++;
}
return f(c-1);
}
int main()
{
int s;
cin>>s;
while(s)
{
cout<<sum(s)<<" ";
s-=sum(s);
}
return 0;
}
bogdaenlu07:
Multumesc mult!
Alte întrebări interesante
Chimie,
8 ani în urmă
Matematică,
8 ani în urmă
Geografie,
8 ani în urmă
Chimie,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Geografie,
9 ani în urmă