Archive for March 29th, 2010

Ức chế lập trình tiếp sức

Đề bài: Nhập vào 1 số nguyên dương < 1 tỷ. Xuất ra khoảng cách giữa số này và số đảo ngược của nó.

Input: 12

Output: 9

Giải thích: |12 – 21| = 9

Đề bài cực dễ, thế mà lúc đó không chịu bình tâm suy nghĩ một chút, uổng và tiếc quá. Kinh nghiệm lần sau phải bỏ ra khoảng 30s suy nghĩ rồi mới quyết định hướng code.

#include <iostream>
#include <string>
#include <math.h>
using namespace std;

int main()
{
    string s;
    cin >> s;
    long m = 0, n = 0;
    for (int i = 0; i< s.length(); i++)
    {
        m += (s[i] - '0') * pow(10, i);
        n += (s[i] - '0') * pow(10, s.length() - i - 1);
    }

    cout << abs(m - n);
    return 0;
}