# Aiuto pane celtico

**URL:** <https://forum.olinfo.it/t/aiuto-pane-celtico/4414>\
**Category:** Aiuto\
**Created:** [14 Febbraio 2017, 9:52pm UTC](https://forum.olinfo.it/t/aiuto-pane-celtico/4414 "2017-02-14T21:52:54Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![lucia58](https://forum.olinfo.it/user_avatar/forum.olinfo.it/lucia58/32/342_2.png) [@lucia58](https://forum.olinfo.it/u/lucia58)\
**Post date:** [14 Febbraio 2017, 9:52pm UTC](https://forum.olinfo.it/t/aiuto-pane-celtico/4414/1 "2017-02-14T21:52:54Z")

</div>

ho 10 punti cosa posso migliorare ?

```auto
#include <iostream>
#include <fstream>
using namespace std;
  int N; int k=0;
  int f(int n, int m){
  	if ((n==1) &&( m== 1) ) return 0;
  	      else {
  	      
  	while ((n!=1) && (m!=1))
  	{ if ((n%2==0)&&(m%2==0))
	              {n=(int)n/2;
	               m=(int)m/2;
	               k++;              	
	              } 
				  else 
	if((n%2!=0)&&(m%2!=0)) {
		             n=2*n+1;
		             m=2*m+1;
		             k++;	}
		    else
		    if(n%2!=0) {
		    			n=n+3;
						k=k+1;
						}
						else 
						{m=m+3;
						k=k+1;					
							
						}
				  
			  
				  	
  	}
  }
  	 return k;
  }

 int main() {
 
 freopen("input.txt", "r", stdin);
 freopen("output.txt", "w", stdout);

 int A,B;int k;
 cin >> A>>B;
 cout<<f(A,B);
 return 0;
 
 }

```

---

<div class="post-metadata">

**Author:** ![dp\_1](https://forum.olinfo.it/user_avatar/forum.olinfo.it/dp_1/32/2635_2.png) [@dp\_1](https://forum.olinfo.it/u/dp_1)\
**Post date:** [15 Febbraio 2017, 8:37am UTC](https://forum.olinfo.it/t/aiuto-pane-celtico/4414/2 "2017-02-15T08:37:50Z")

</div>

Non trovo il testo del problema, puoi linkarlo?

---

<div class="post-metadata">

**Author:** ![filippos](https://forum.olinfo.it/user_avatar/forum.olinfo.it/filippos/32/103_2.png) [@filippos](https://forum.olinfo.it/u/filippos)\
**Post date:** [15 Febbraio 2017, 9:46am UTC](https://forum.olinfo.it/t/aiuto-pane-celtico/4414/3 "2017-02-15T09:46:31Z")

</div>

Il testo del problema è questo: [Pane celtico (taverna)](https://digit.cms.di.unipi.it/api/files/de32ccce762d4579234e3a5857fdc001576a2713/testo.pdf)  
Non è disponibile su questa piattaforma perché è stato realizzato per un corso per docenti, se non sbaglio

---

<div class="post-metadata">

**Author:** ![lucia58](https://forum.olinfo.it/user_avatar/forum.olinfo.it/lucia58/32/342_2.png) [@lucia58](https://forum.olinfo.it/u/lucia58)\
**Post date:** [15 Febbraio 2017, 1:46pm UTC](https://forum.olinfo.it/t/aiuto-pane-celtico/4414/4 "2017-02-15T13:46:57Z")

</div>

[https://digit.cms.di.unipi.it/#/task/oli4\_taverna/statement](https://digit.cms.di.unipi.it/#/task/oli4_taverna/statement)

---

<div class="post-metadata">

**Author:** ![lucia58](https://forum.olinfo.it/user_avatar/forum.olinfo.it/lucia58/32/342_2.png) [@lucia58](https://forum.olinfo.it/u/lucia58)\
**Post date:** [15 Febbraio 2017, 1:48pm UTC](https://forum.olinfo.it/t/aiuto-pane-celtico/4414/5 "2017-02-15T13:48:07Z")

</div>

si infatti l’anno scorsp

---

<div class="post-metadata">

**Author:** ![dp\_1](https://forum.olinfo.it/user_avatar/forum.olinfo.it/dp_1/32/2635_2.png) [@dp\_1](https://forum.olinfo.it/u/dp_1)\
**Post date:** [15 Febbraio 2017, 6:45pm UTC](https://forum.olinfo.it/t/aiuto-pane-celtico/4414/6 "2017-02-15T18:45:44Z")

</div>

Se sia N che M sono dispari il tuo codice fa

````auto
M = 2*M + 1```
Mentre il testo dice che 2*N+1 e 2*M+1 vadano aggiungi al valore precedente. Dovresti fare qualcosa del tipo di:
```N += 2*N + 1
M += 2*M + 1```
oppure
```N = 3*N + 1
M = 3*M + 1```

Altro possibile bug è che non c'è modo per il tuo codice di ritornare -1, cosa che dovrebbe avvenire se non è possibile arrivare alla coppia (1,1). Di questo non sono molto sicuro, è possibile che esista sempre una soluzione, come nel caso della congettura di Collatz.

Dario
````
