calculadora A-Uint47 (multiplicación rápida)
Significado de las preguntas:
La definición de un montón de variables y luego sumar o restar, multiplicar y dividir las operaciones
ideas:
Esta pregunta es difícil de colocar en la multiplicación, excedería el alcance de un largo tiempo por lo que necesitan para multiplicarse rápidamente (principio similar con potencia rápido)
#include <iostream> #include <algoritmo> #include <vector> #include <mapa> #include < string > #define Endl endl utilizando espacio de nombres std; typedef largo largo ll; const ll mod = 1LL << 47 ; mapa < cadena , ll> m; secuencia S1, S2, S3; ll qm (ll a, ll b) { ll ans = 0 ; mientras que (b) { si (b% 2 ) ans = (ans + a)% mod; un = (a + a)% mod; b / = 2 ; } volver ans; } int main () { ll num; mientras que (cin >> >> s1 s2) { si (s1 == " def " ) cin >> num; otra cosa { cin >> s3; si (s1 == " añadir " ) num = (m [s2] + m [S3])% mod; si (s1 == " sub " ) num = (m [s2] -m [S3] + mod)% mod; si (s1 == " mul " ) num = qm (m [s2], m [S3]); si (s1 == " div " ) num = m [s2] / m [S3]; si (s1 == " mod " ) num = m [s2]% m [S3]; } si (num < 0 ) num + = mod; m [s2] = num; cout << << s2 " = " << num << endl; } volver 0 ; }