fork download
  1. #include <cassert>
  2. #include <iostream>
  3. #include <string>
  4.  
  5. int last_part[][10] = { {0, 1, 5, 12, 18, 23, 29, 32, 38, 47},
  6. {0, 1, 7, 10, 16, 21, 27, 34, 38, 47} };
  7.  
  8. int func ( int tens_digit, int units_digit ) {
  9. return ( tens_digit * 47 + last_part[ tens_digit & 1 ][ units_digit ] ) % 10;
  10. }
  11.  
  12. int main () {
  13. std::string num;
  14. size_t n_input, i = 0;
  15. for ( std::cin >> n_input; i < n_input; ++i ) {
  16. std::cin >> num;
  17. int t = 0, u; // tens_digit, units_digit
  18. std::string::reverse_iterator rit=num.rbegin();
  19.  
  20. u = (*rit) - '0';
  21. rit ++;
  22. if ( rit != num.rend() ) { t = (*rit) - '0'; }
  23. assert ( u >= 0 && u <= 9 && t >= 0 && t <= 9 );
  24.  
  25. std::cout << func ( t, u ) << std::endl;
  26. }
  27.  
  28. return 0;
  29. }
  30.  
Success #stdin #stdout 0.02s 2860KB
stdin
15
0
1
2
3
4
5
6
7
8
9
10
11
12
15
655350
stdout
0
1
5
2
8
3
9
2
8
7
7
8
4
8
5