283 afișări Tudurachi Călin (colan007) 04.10.2023 www.pbinfo.ro
Etichete: nicio etichetă

#include <fstream>

using namespace std;

ifstream cin(“nr_pal.in”);
ofstream cout(“nr_pal.out”);

int pow(int a, int b){ int p = 1; for(int i = 1; i <= b; i++) p*=a; return p;

}

int og(int n){ int ogl = 0; while(n){ ogl = ogl*10 + n%10; n/=10; } return ogl;
}

int nrcif(int n){ int cf = 0; if(n == 0) return 1; while(n) n/=10, cf++; return cf;
}

int nr_pal(int n){ if(n==-1) return 0; int cif = nrcif(n), rasp = 1; if(cif & 1){ rasp += 2*(pow(10, cif/2)-1); int pal = n/pow(10, cif/2) * pow(10, cif/2) – og(n/pow(10, cif/2 + 1)); if(n >= pal) rasp += n/pow(10, cif/2) – pow(10, cif/2) + 1; else rasp += n/pow(10, cif/2) – pow(10, cif/2); } else { rasp += 2*(pow(10, (cif-1)/2)-1) + 9*(pow(10, (cif-1)/2)); int pal = n/pow(10, cif/2) * pow(10, cif/2) + og(n/pow(10, cif/2)); if(n >= pal) rasp += n/pow(10, cif/2) – pow(10, cif/2-1) + 1; else rasp += n/pow(10, cif/2) – pow(10, cif/2-1); } return rasp;
}

int main()
{ int n, a, b; cin >> n; for(int i = 1; i <= n; i++){ cin >> a >> b; cout << nr_pal(b) – nr_pal(a-1) << endl;

} return 0; }

283 afișări Tudurachi Călin (colan007) 04.10.2023 www.pbinfo.ro