codice:var: numero <- 0 tmp loop: tmp <- cifra binaria se tmp != cifra binaria allora end numero <- numero * 2 + tmp loop end: stampa numero
codice:var: numero <- 0 tmp loop: tmp <- cifra binaria se tmp != cifra binaria allora end numero <- numero * 2 + tmp loop end: stampa numero
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares
grazie ma penso di non aver bene interpretato il tuo pseudo codice ho provato a seguirti ma ho scritto una cosa insensata come questae non ha veramente senso.codice:#include <iostream> using namespace std; int main (int argc, char * const argv[]) { int binary; int n=0; int tmp; cin>>binary; while (n<binary) { tmp=binary; if (tmp!=binary){ n=n*2+tmp; n=n+1;} } cout<<n; return 0; }
Ultima modifica di enrico92; 09-04-2014 a 20:28
codice:#include <iostream> using namespace std; int main (int argc, char * const argv[]) { int binary; int n=0; char tmp; while (true) { cin >> tmp; tmp = tmp-'0'; if (tmp!=0 && tmp!=1){ break; } else { n = n*2+tmp; } } cout<<n; return 0; }
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares
ok grazie funziona, ma il ragionamento mi resta ignoto, sono proprio duro, praticamente usi tmp ovvero il binario che devo inserire come char, (fino a quando non inserisco un carattere infatti il programma non va avanti), cancelli poi il carattere nullo, metti una condizione per assicurarti che il valore inserito sia un binario, e poi fai n=n*2+tmp perchè?? scusa ma lo devo proprio capire se no veramente non mi sento soddisfatto. potresti spiegarmi il codice e il ragionamento questa volta in semplice lingua italiana. grazie mille per la pazienza.