Cómo hacer granos de arroz del Rey usando pascal, recuerda tener salida. (Ver el suplemento del título para más detalles)
Los datos no son grandes, por lo que no se requiere alta precisión;
Método matemático:
var
k, n, m , s: entero largo ;
comenzar
leer(m,n);
s:=trunc(exp(n*ln(2)))- 1; // Encuentra el número de 1 sumado a N, exp(n*ln(2)) significa 2 elevado a la enésima potencia, trunc está redondeando;
k:=trunc(exp((m- 1) *ln(2)))-1; //Encontrar el número de 1 sumado a M-1
s:=s-k //Restar para obtener la respuesta
writeln(s);
end.
Métodos no matemáticos:
var
a: array[1..31] de entero largo
n, m, i, s: entero largo
comenzar
leer(m, n
a); [ 1]:=1;
for i:=2 a 30 do a[i]:=a[i-1]*2 //Primero descubre cuántos hay en el tablero desde 1; a 30 granos de arroz
for i:=m to n do s:=s a[i] //Simplemente suma el rango requerido
writeln(s);
p>fin.
Si no entiendes, sigue preguntando. ¡Espero que lo aceptes!