Pagini recente » Cod sursa (job #1276178) | Cod sursa (job #2258044) | Cod sursa (job #3197744) | Cod sursa (job #1829066) | Cod sursa (job #780044)
Cod sursa(job #780044)
#include<fstream>
//#include<time.h>
#include<stdio.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(cont==k)
{
if(a%100<(a-10)%100)
cont=nr_cifre_C(a,c);
i++;
}
if(cont>k)
i+=10;
}
return(i);
}
int main()
{
int a,b,c,k;
freopen("cifre.out","w",stdout);
citeste_numar(a);
citeste_numar(b);
citeste_numar(c);
citeste_numar(k);
g.precision(4);
g<<parcurgere(a,b,c,k)<<"/"<<(b-a+1)<<"\n";
g<<fixed<<(float)parcurgere(a,b,c,k)/(b-a+1);
// printf("%.4f\n",(float)parcurgere(a,b,c,k)/(b-a+1));
}