Ciao a tutti, io ci ho provato scrivendo questo codice che pare funzionare se il numero x è di 2 cifre ma come scrivere l'algoritmo per farlo funzionare in ogni caso?
Vi allego il mio codice, in testa trovate la traccia del problema:
codice:
/*
Nome del programma: contacifre.cpp
Note : Definire una funzione ContaCifre che prenda in input
un Vettore V di interi di lunghezza N, ed un numero X
e conti quante volte tutte le cifre di X siano contenute
negli elementi che compongono il vettore.
Esempi.
Siano V=[484,325,12,8489,48,12487,1284] ed X=48 ;
ContaCifre(V,7,48) = 4 (sono evidenziati i numeri che
contengono al loro “interno” il numero 48).
*/
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
int contacifre(int [],int,int);
int main(){
int x,n=9;
int V[9]={484,325,12,8489,48,12487,1284,0,34548};
cout<<"Immetti la Cifra da cercare: ";
cin>>x;
cout<<"\n\nLe cifre sono "<<contacifre(V,n-1,x)<<endl;
system("pause");
return 0;
}
int contacifre(int v[],int n,int x){
int conta=0;
if(n<0) return 0;
while(n>=0){
if(v[n]==x) {conta++;
cout<<v[n]<<" "<<conta<<endl;
//system("pause");
}
else{
int n1=v[n];
cout<<n1<<" "<<conta<<endl;
//system("pause");
do{
if(n1==x) conta++;
else if((n1-x)%10==0 && ((n1-x)/10)%10==0) conta++;
cout<<n1<<" "<<conta<<endl;
//system("pause");
n1=n1/10;
}while(n1!=0);
}
n--;
}
return conta;
}
Grazie