UVa Problem Solution: 10018 - Reverse and Add


Do what you are told to do.

Code:
  1. /*************************************************************************
  2.  * Copyright (C) 2008 by liukaipeng                                      *
  3.  * liukaipeng at gmail dot com                                           *
  4.  *************************************************************************/
  5. /* @JUDGE_ID 00000 10018 C++ "Reverse and Add" */
  6. #include <algorithm>
  7. #include <cstdio>
  8. #include <cstring>
  9. #include <deque>
  10. #include <fstream>
  11. #include <iostream>
  12. #include <list>
  13. #include <map>
  14. #include <queue>
  15. #include <set>
  16. #include <stack>
  17. #include <string>
  18. #include <vector>
  19. using namespace std;
  20. typedef unsigned int uint;
  21.           
  22. int main(int argc, char *argv[])
  23. {
  24. #ifndef ONLINE_JUDGE
  25.   freopen((string(argv[0]) + ".in").c_str(), "r", stdin);
  26.   freopen((string(argv[0]) + ".out").c_str(), "w", stdout);
  27. #endif
  28.   int ncases;
  29.   cin >> ncases;
  30.   while (ncases-- > 0) {
  31.     uint n;
  32.     cin >> n;
  33.     int niters = 0;
  34.     for (; ; ) {
  35.       uint r = 0;
  36.       for (uint t = n; t != 0; t /= 10)
  37.         r = r * 10 + t % 10;
  38.       if (r == n) break;
  39.       n += r;
  40.       ++niters;
  41.     }
  42.     cout << niters << ' ' << n << '/n';
  43.   }
  44.   return 0;
  45. }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章