Cod sursa(job #2014948)

Utilizator DianaPopDiana Pop DianaPop Data 24 august 2017 18:09:54
Problema Cifre Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 1.26 kb
#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;
}