Răspuns :
Sursa ta primeste doar 40 de puncte deoarece este pur si simplu solutia standard de a parcurge toate numerele si a le verifica cifra de control, ceea ce nu e eficient pentru un interval mare! Atentie mare la restrictiile problemei, mai ales la cele de concurs cand lucrezi!!!
Solutie de 100 de puncte
#include <iostream>
#include <fstream>
int a, b, c, Nr, cc, n;
int main(){
ifstream f("control1.in");
ofstream g("control1.out");
cin>>a>>b>>c;
if (c>b) cout<<0;//printf("0");
else{
// caut primul, apoi aplic formula
Nr=a-1;
do{
cc=++Nr; // salvez numarul in cc = cifra de control
do{
n=cc; // pastrez vechea cifra de control pentru lucru
cc=0; // o reinitializez cu 0 - aici calculez suma cifrelor
while(n){
cc+=n%10; // aduna ultima cifra
n/=10; // scapa de ea
}
}while(cc>=10); // pana cand am obtinut o cifra de control < 10
}while(cc!=c); // pana cand am gasit primul
cout<<(b-Nr)/9+1;
}
return 0;
}
Vă mulțumim că ați vizitat site-ul nostru web care acoperă despre Informatică. Sperăm că informațiile furnizate v-au fost utile. Nu ezitați să ne contactați dacă aveți întrebări sau aveți nevoie de asistență suplimentară. Ne vedem data viitoare și nu ratați să marcați.