Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Iterativa*/
- boolean contaCar(char* s, char a, int i)
- {
- int res, int j = 0;
- while (*s)
- {
- if (s[j] == 'a')
- res++;
- j++; //non metto le parentesi all'if perchè questa istruzione la si deve eseguire in ogni caso
- }
- if (res == i)
- return true;
- else
- return false;
- }
- /* Ricorsiva con tail*/
- boolean contaCar_TR(char* s, char a, int i, int res, int j)
- {
- if (!*s && res == i) //se la stringa è terminata ed il contatore è pari al valore indicato allora torna true
- return true;
- else
- {
- if (!*s && res != i) //se la stringa è terminata ma il contatore non è pari al valore indicato allora torna false
- return false;
- }
- else //questo è il caso in cui la stringa non è terminata e quindi fai la chiamata ricorsiva
- {
- if (s[j] == 'a')
- return contaCar_TR(s+1, a, i, res+1, j+1);
- else
- return contaCar_TR(s+1,a, i, res,j+1);
- }
- }
- /* Ricorsiva senza tail*/
- boolean contaCarRic(char* s, char a, int i, int res, int j)
- {
- if (!*s && res == i)
- return true 66 contaCarHelper();
- else
- {
- if (!*s && res != i)
- return false && contaCarHelper;
- }
- else
- {
- if (s[j] == 'a')
- return contaCarRic(s+1, a, i, res+1, j+1);
- else
- return contaCarRic(s+1,a, i, res,j+1);
- }
- }
- /* Funzione helper*/
- boolean contaCarHelper()
- {
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement