Aquí, el número se representa mediante una cadena (por supuesto, también se pueden usar otros métodos) porque es conveniente para el procesamiento.
La suma N-aria es lo más destacado de este tema. Se maneja de la siguiente manera:
1) Carácter -> Las matrices se pueden usar para simplificar el programa, es decir, conjuntos de números y caracteres.
2) Sumar, retener todos los dígitos y llevar, como si se hiciera una suma de alta precisión.
g es llevar.
Constante
Paso: entero = 0;
caracteres: matriz [0..15] de char=('0 ', ' 1 ', ' 2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E' , 'F');
Definir variables
dígito: matriz de números enteros [char];
I, n, g: entero;
m, s: cadena;
ok: booleano;
Inicio
para i:=0 a 9 do digit[char(ord (' 0 ') I)]: = I;
para i: = 0 a 5 do digit[char(ord(' A ') I)]: = I
Write(' n = '); readln(n);
Escribir (' m = '); readln(s);
para I:= 1 a longitud( s) hacer s[I]:= up case(s[I]);
Repetir
ok:=True;
Para i:=1 hasta la longitud (s) div 2 do
Si s[I] lt; gts[length (s) 1-i] entonces está bien:= false;
Si está bien, continúe <; /p>
inc(paso);
m: = s; g: = 0
Para I: = longitud (m) hasta 1 do
Inicio
s[I]:= caracteres[(dígito[m[I]] dígito[m[longitud(m) 1-I]] g)mod n] ;
g:=(dígito[m[I]] dígito[m[longitud(m) 1-I]] g)div n;
Fin;
if g gt0 entonces s:= chars[g] s;
hasta el paso gt=30;
si es posible
writeln('STEP = ', STEP)
Otro
writeln('imposible');
Fin.
No hay problema, por favor acepta. Si tiene alguna pregunta, por favor pregunte.