Pagini recente » Cod sursa (job #961268) | Cod sursa (job #1714066) | Cod sursa (job #1173196) | Cod sursa (job #619979) | Cod sursa (job #2714261)
#include <fstream>
using namespace std;
string a, nr, b;
int stanga, dreapta;
int cate, k, c;
void bkt( int s ){
if( nr.size() > b.size() )
return;
if( nr.size() >= a.size() )
if( nr.size() == b.size() ){
if( nr <= b )
if( s >= k )
++cate;
} else if( s >= k )
++cate;
for( int i = '0'; i <= '9'; i++ ){
string cop = nr;
nr += i;
bkt( s + ( i - 48 == c ) );
nr = cop;
}
}
int main()
{
ifstream fin( "cifre.in" );
fin >> a >> b >> c >> k;
for( int i = 0; i < a.size(); i++ )
stanga = stanga * 10 + a[ i ] - 48;
for( int i = 0; i < b.size(); i++ )
dreapta = dreapta * 10 + b[ i ] - 48;
for( int i = '1'; i <= '9'; i++ ){
nr = i;
bkt( ( i - 48 == c ) );
}
FILE *fout = fopen( "cifre.out", "w" );
fprintf( fout, "%.4f\n", ( double )cate / ( dreapta - stanga + 1 ) );
fclose( fout );
return 0;
}