Informatică, întrebare adresată de danioanplohi, 8 ani în urmă

Cerința
Să se scrie o funcţie care primeşte ca argumente două numere naturale a şi b şi returnează numărul de elemente din intervalul [a,b] care au cifra de control egală cu a.
Cifra de control a unui număr se obţine efectuând suma cifrelor sale, apoi suma cifrelor acestei sume etc. până se obţine o sumă formată dintr-o singură cifră. De exemplu, cifra de control a numărului 645 este 6. (6+4+5=15, 1+5=6)

Restricţii şi precizări
numele funcţiei va fi sum_cifra_control
funcţia va avea doi parametri, a şi b, în această ordine
1 ≤ a ≤ 9
a < b ≤ 107

Răspunsuri la întrebare

Răspuns de boiustef
2

#include <iostream>

using namespace std;

int sum_cifra_control(int a, int b)

{

   int s, control, num, contor=0;

   for (num=a; num<=b; ++num)

   {

       control=num;

       while (control>9)

       {

           s=0;

           while (control>0)

           {

               s=s+control%10;

               control=control/10;

           }

           control=s;

       }

       if (control==a) ++contor;

   }

   return contor;

}

int main()

{

   int a, b;

   cout << "a= "; cin >> a;

   cout << "b= "; cin >> b;

   cout <<" exista " << sum_cifra_control(a,b) << " numere din intervalul [a,b] care au cifra de control egala cu a";

}

Alte întrebări interesante