497
Cerința
Fiind dat un număr natural n, se cere să se calculeze suma cifrelor numărului care reprezintă numărul de numere de n cifre formate cu cifrele 3 şi 4.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Programul va afișa pe ecran numărul S, reprezentând suma cerută.
Restricții și precizări
1 ≤ n ≤ 100.000
Exemplu
Intrare
4
Ieșire
7
Explicație
Numerele de 4 cifre formate cu cifrele 3 şi 4 sunt 3333 , 3334 , 3343 , 3433 , 4333 , 3344 , 3434 , 4334 , 4343 , 4433 , 3443 , 3444 , 4344 , 4434 , 4443 , 4444. Deci sunt 16 numere, iar suma cifrelor este S=7.
#include <bits/stdc++.h>
using namespace std;
int n, a[100001], c=1;
int main()
{
cin >> n;
a[1]=1;
long long int suma=0;
while(n>=10)
{
int t=0;
for(int j=1; j<=c; j++)
{
int cif=a[j]*1024+t;
a[j] = cif % 10;
t=cif/10;
}
while(t)
{
a[++c]=t%10;
t/=10;
}
n-=10;
}
while(n)
{
int t=0;
for(int j=1; j<=c; j++)
{
int cif=a[j]*2+t;
a[j] = cif % 10;
t=cif/10;
}
while(t)
{
a[++c]=t%10;
t/=10;
}
n--;
}
for(int i = 1 ; i <= c ; ++i)
suma+=a[i];
cout << suma;
return 0;
}
Comentarii