Pagini recente » Istoria paginii runda/sin/clasament | Istoria paginii runda/simulare-cartita-12 | Istoria paginii runda/simulare-cartita-19a | Monitorul de evaluare | Cod sursa (job #2014948)
#include <stdio.h>
#include <stdlib.h>
long long x,p,n,a,b,k,c;
long long nr;
int cifre( int n ){
int nr = 0;
for( ; n ; n /= 10 ){
if( n%10 == c ){
nr++;
}
}
return nr;
}
int main(){
freopen( "cifre.in" , "r" , stdin );
freopen( "cifre.out" , "w" , stdout);
scanf ( "%d %d %d %d" , &a , &b , &c , &k );
if( b - a >= 10000 ){
for( ; a % 10000 ; a++ , p++ ){
if( cifre(a) >= k ){
nr++;
}
}
for( x = 0 ; b - a >= 10000 ; a += 10000 , p += 10000 ){
x = cifre( a/10000 );
if( x >= k ){
nr += 6561;
}
if( x >= k - 1 ){
nr+=2916;
}
if( x >= k - 2 ){
nr += 487;
}
if( x >= k - 3 ){
nr += 35;
}
if( x >= k - 4 ){
nr++;
}
}
}
for( ; a <= b ; a++ , p++ ){
if( cifre(a) >= k ){
nr++;
}
}
printf( "%f" , (double)nr/p );
return 0;
}