Informatică, întrebare adresată de bogdaenlu07, 9 ani în urmă

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 Utilizator anonim
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;
}

bogdaenlu07: Multumesc mult!
Utilizator anonim: cu placere!
Alte întrebări interesante