#1503 Puteri5
Deoarece Ionel nu a înţeles bine ordinea de efectuare a operaţiilor de ridicare la putere, doamna învăţătoare îi dă o tema care să îl ajute să aprofundeze această problemă. Astfel, îi dă mai multe exerciţii de următorul tip: pentru trei cifre nenule a, b, c, el va trebui să calculeze valoarea următoarei expresii:
abc+acb+bac+bca+cab+cba
Cerința
Cunoscând cifrele a, b, c, determinaţi valoarea obţinută în urma efectuării calculelor de mai sus.
Date de intrare
Fișierul de intrare puteri5.in conține pe prima linie trei cifre a b c, separate prin câte un spaţiu.
Date de ieșire
Fișierul de ieșire puteri5.out va conține un număr natural ce reprezintă valoarea obţinută pentru expresia precizată anterior.
Restricții și precizări
1 ≤ a,b,c ≤ 5
Exemplul 1
puteri5.in
2 1 3
puteri5.out
24
Explicație
213+231+123+132+321+312=21+23+18+19+32+31=2+8+1+1+9+3=24
Exemplul 1
puteri5.in
2 3 2
puteri5.out
1698
Imi da 10, chiar daca o fac cu exponentiere rapida
#include
using namespace std;
ifstream cin("puteri5.in");
ofstream cout("puteri5.out");
unsigned long long int Putere(unsigned long long int A ,unsigned long long int n)
{
if(n == 0)
return 1;
if(n % 2 == 1)
return A * Putere(A , n - 1);
int P = Putere(A , n / 2);
return P * P;
}
int main()
{
unsigned long long int s=0;
int a,b,c;
cin>>a>>b>>c;
s=Putere(a,Putere(b,c))+Putere(a,Putere(c,b))+Putere(b,Putere(a,c))+Putere(b,Putere(c,a))+Putere(c,Putere(b,a))+Putere(c,Putere(a,b));
cout << s << endl;
return 0;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Ne bucurăm să vă revedem și vă invităm să ne adăugați în lista de favorite!