Vi una solución muy nb Tower of Hanoi en Internet hoy: conteo binario.
- Por ejemplo: hay 8 placas, numeradas del 0 al 7 de pequeña a grande, correspondientes a los bits de menor a mayor del número binario de 8 bits. Nos sorprenderá encontrar que cada vez que movemos la placa No. 0, el bit más bajo del binario se convertirá en 1 (más 1), y cuando se mueve la placa No. 1, el penúltimo bit se convertirá en 1 ... y así sucesivamente, podemos obtener Si la ejecución binaria corresponde al número de veces que se mueve la placa, el dígito con el primer 1 del dígito inferior corresponde al número de la placa en movimiento actual. Agregue código y preguntas de muestra para ayudar a comprender:
Descripción del problema:
Pregunte qué placa se movió por mes.
Entrada:
2 enteros por línea n (1 ≤ n ≤ 63), m≤ 2 ^ n-1.n = m = 0 salir.63
1
63 2
0 0
Salida: Muestra
el número de placa movida por enésima vez.
1
2
#include<iostream>
using namespace std;
int main()
{
long long n,m;
while(cin>>n>>m&&n&&m)
{
int temp,p=0;
while(m!=0)
{
temp=m%2;
m=m/2;
p++;
if(temp==1) break;
}
cout<<p<<endl;
}
return 0;
}