Thứ Năm, 10 tháng 1, 2019

UVa 10018 - Reverse and Add (ad hoc, math, palindrome check)

Link: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=12&page=show_problem&problem=959
Sol:
#include <iostream>
using namespace std;
long Reverse(long x)
{
long newX(0);
while (x)
{
newX *= 10;
newX += x % 10;
x /= 10;
}
return newX;
}
int main()
{
int numberOfCases;
cin >> numberOfCases;
for (int i = 0; i < numberOfCases; ++i)
{
long number;
cin >> number;
long reverseNumber = Reverse(number);
int count(0);
while (reverseNumber != number)
{
number += reverseNumber;
reverseNumber = Reverse(number);
++count;
}
cout << count << " " << number << endl;
}
}

Không có nhận xét nào:

Đăng nhận xét

Bài G - Educatioal Round 62

Đề bài: Bạn được cho 1 đồ thị vô hướng đặc biệt. Nó bao gồm $2n$ đỉnh được đánh số từ 1 đến 2n. Dưới đây là một số đặc tính của đồ thị: + ...