Salve a tutti!
Seguendo la logica di questo esercizio, il mio problema è quando gli passo dei valori presenti in un file di input costituito da 100 righe composte da N e M( "n" per il numero dei dischi, "m" per la mossa di cui voglio i dettagli).
Dà il giusto output solamente per la prima riga.
Cos'è che sbaglio?Sono due giorni che ci sbatto la testa senza trovare soluzione
Spero possiate aiutarmi, ve ne sarei grata.
#include <iostream>
#include <string>
#include<fstream>
using namespace std;
ifstream fin("input.txt");
ofstream fout("output.txt");
int mossa = 0;
void hanoi(int disk, int mov, int start, int end, int free) {
if (disk == 1) {
mossa++;
if(mossa == mov){
fout << "Muovi il disco " << disk << " dal piolo " << start << " al piolo " << end << endl;
}
}
else {
hanoi(disk-1, mov, start, free, end);
mossa ++;
if(mossa == mov){
fout << "Muovi il disco " << disk << " dal piolo " << start << " al piolo " << end << endl;
}
hanoi(disk-1, mov, free, end, start);
}
}
int main() {
int n;
int m;
for(int i=0; i<100; i++){
fin >> n;
fin >> m;
hanoi(n,m,1,3,2);
}
}