# Crittografia LWF (lwf) ottengo 10/100 nonostante gli output "dovrebbero" essere corretti

**URL:** <https://forum.olinfo.it/t/crittografia-lwf-lwf-ottengo-10-100-nonostante-gli-output-dovrebbero-essere-corretti/5323>\
**Category:** Aiuto\
**Created:** [28 Settembre 2018, 3:55pm UTC](https://forum.olinfo.it/t/crittografia-lwf-lwf-ottengo-10-100-nonostante-gli-output-dovrebbero-essere-corretti/5323 "2018-09-28T15:55:28Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![LorenzoM](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/l/e495f1/32.png) [@LorenzoM](https://forum.olinfo.it/u/LorenzoM)\
**Post date:** [28 Settembre 2018, 3:55pm UTC](https://forum.olinfo.it/t/crittografia-lwf-lwf-ottengo-10-100-nonostante-gli-output-dovrebbero-essere-corretti/5323/1 "2018-09-28T15:55:28Z")

</div>

Ho provato il codice più volte, prendendo valori in input differenti, e facendo i calcoli la sequenza di bit dovrebbe corrispondere al valore decimale dato in input.  
Ma solo il primo testcase risulta corretto nel portale.

```
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
vector<int>answer;
int lwf(int n,int f1,int f2){
	int ris;
	if(n>f2){
		ris=lwf(n,f2,f1+f2);
		if(ris>f2){
			answer.push_back(1);
			return ris-f2;
		}
		else if(ris==f2){
			answer.push_back(1);
			return 0;
		}else{
			answer.push_back(0);
			return ris;
		}
		
	}else if(n==f2){
		answer.push_back(1);
		return 0;
	}else{
		return n;
	}
}

int main()
{
	ifstream leggi("input.txt");ofstream scrivi("output.txt");
	int n,ris;
	leggi>>n;
	ris=lwf(n,0,1);
	for(int i=answer.size()-1;i>=0;i--){
		scrivi<<answer.at(i)<<" ";
	}
	

}
```

---

<div class="post-metadata">

**Author:** ![frakkiobello](https://forum.olinfo.it/user_avatar/forum.olinfo.it/frakkiobello/32/2768_2.png) [@frakkiobello](https://forum.olinfo.it/u/frakkiobello)\
**Post date:** [28 Settembre 2018, 4:16pm UTC](https://forum.olinfo.it/t/crittografia-lwf-lwf-ottengo-10-100-nonostante-gli-output-dovrebbero-essere-corretti/5323/2 "2018-09-28T16:16:28Z")

</div>

Non so se ci sono altri errori, ma sicuramente non dovrebbe esserci lo spazio tra i valori nell’output.

---

<div class="post-metadata">

**Author:** ![LorenzoM](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/l/e495f1/32.png) [@LorenzoM](https://forum.olinfo.it/u/LorenzoM)\
**Post date:** [28 Settembre 2018, 6:16pm UTC](https://forum.olinfo.it/t/crittografia-lwf-lwf-ottengo-10-100-nonostante-gli-output-dovrebbero-essere-corretti/5323/3 "2018-09-28T18:16:00Z")

</div>

Okay, ho fatto come suggerito, ma la situazione non è cambiata così tanto.  
Adesso al posto di ottenere 10/100 ottengo 20/100.

---

<div class="post-metadata">

**Author:** ![zJack1342](https://forum.olinfo.it/user_avatar/forum.olinfo.it/zjack1342/32/711_2.png) [@zJack1342](https://forum.olinfo.it/u/zJack1342)\
**Post date:** [28 Settembre 2018, 7:18pm UTC](https://forum.olinfo.it/t/crittografia-lwf-lwf-ottengo-10-100-nonostante-gli-output-dovrebbero-essere-corretti/5323/5 "2018-09-28T19:18:02Z")

</div>

> [@LorenzoM](#):
>
> Adesso al posto di ottenere 10/100 ottengo 20/100.

Levando lo spazio il codice fa 100…

```
#include<iostream>
#include<fstream>
#include<vector>

using namespace std;

vector<int>answer;

int lwf(int n,int f1,int f2){
	int ris;
	if(n>f2){
		ris=lwf(n,f2,f1+f2);
		if(ris>f2){
			answer.push_back(1);
			return ris-f2;
		}
		else if(ris==f2){
			answer.push_back(1);
			return 0;
		}else{
			answer.push_back(0);
			return ris;
		}
		
	}else if(n==f2){
		answer.push_back(1);
		return 0;
	}else{
		return n;
	}
}

int main()
{
	ifstream leggi("input.txt");ofstream scrivi("output.txt");
	int n,ris;
	leggi >>n;
	ris=lwf(n,0,1);
	for(int i=answer.size()-1;i>=0;i--){
		scrivi<<answer.at(i);
	}
}

```

---

<div class="post-metadata">

**Author:** ![LorenzoM](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/l/e495f1/32.png) [@LorenzoM](https://forum.olinfo.it/u/LorenzoM)\
**Post date:** [28 Settembre 2018, 9:31pm UTC](https://forum.olinfo.it/t/crittografia-lwf-lwf-ottengo-10-100-nonostante-gli-output-dovrebbero-essere-corretti/5323/6 "2018-09-28T21:31:09Z")

</div>

Si, grazie mille ad entrambi.  
Mi ero scordato di aver apportato un’altra modifica, per cercare di risolvere l’errore, prima di togliere gli spazi che evidentemente ha contribuito nel dare un risultato errato.
