Pagini recente » Cod sursa (job #1098525) | Cod sursa (job #419339) | Cod sursa (job #1100668) | Cod sursa (job #2627620) | Cod sursa (job #780001)
Cod sursa(job #780001)
#include<fstream>
//#include<time.h>
using namespace std;
ifstream f("cifre.in");
ofstream g("cifre.out");
void citeste_numar(int& x)
{
f>>x;
}
int nr_cifre_C(int x,int c)
{
int cont=0;
while(x!=0)
{
if(x%10==c)
cont++;
x=x/10;
}
return(cont);
}
int parcurgere(int a,int b,int c,int k)
{
int cont=0,i=0;
cont=nr_cifre_C(a,c);
if(cont>=k)
i++;
if(a%10-c>0)
a+=a%10-c;
else
a+=c-a%10;
cont=nr_cifre_C(a,c);
if(cont>=k)
i++;
while(a<=b)
{
if(b-a<10)
{
a++;
if(cont>=k)
i++;
if(a%100<(a-1)%100)
cont=nr_cifre_C(a,c);
continue;
}
a+=10;
if((a/10)%10==c)
cont++;
if(cont==k)
{
if(a%100<(a-10)%100)
cont=nr_cifre_C(a,c);
}
if(cont>k)
i+=10;
}
return(i);
}
int main()
{
int a,b,c,k;
citeste_numar(a);
citeste_numar(b);
citeste_numar(c);
citeste_numar(k);
g.precision(4);
g<<fixed<<(float)parcurgere(a,b,c,k)/(b-a+1);
//fprintf("%1.4f\n",parcurgere(a,b,c,k)/(b-a+1));
//clock_t end=clock();
//g<<"Duration in ms: "<<(end)/(CLOCKS_PER_SEC/1000);
}