<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: 10018 code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 29 Aug 2008 17:49:35 GMT</pubDate>
    <description>DZone Snippets: 10018 code</description>
    <item>
      <title>A solution for the "Reverse and Add" problem</title>
      <link>http://snippets.dzone.com/posts/show/5359</link>
      <description>A solution for the "Reverse and Add" problem.&lt;br /&gt;&lt;br /&gt;Problem description:&lt;br /&gt;&lt;a href="http://icpcres.ecs.baylor.edu/onlinejudge/external/100/10018.html"&gt;http://icpcres.ecs.baylor.edu/onlinejudge/external/100/10018.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Author: &lt;a href="http://joanatrindade.wikidot.com"&gt;Joana Matos Fonseca da Trindade&lt;/a&gt;&lt;br /&gt;Date: 2008.04.14&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/*&lt;br /&gt; * Solution for the "Reverse and Add" problem.&lt;br /&gt; * UVa ID: 10018&lt;br /&gt; */&lt;br /&gt;#include &lt;iostream&gt;&lt;br /&gt;&lt;br /&gt;#define NDIGITS 100&lt;br /&gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;/* returns the reversed number */&lt;br /&gt;unsigned long long reverse(unsigned long long number) {&lt;br /&gt;	unsigned long long m = 0; /* reversed number */&lt;br /&gt;	int digits[NDIGITS]; /* digits array */&lt;br /&gt;	int pos = 0, power = 1;&lt;br /&gt;	&lt;br /&gt;	/* init */&lt;br /&gt;	for (int i=0; i&lt;NDIGITS; i++) {&lt;br /&gt;		digits[i] = 0;&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	/* retrieve all digits */&lt;br /&gt;	while (number &gt; 0) {&lt;br /&gt;		digits[pos++] = number % 10;&lt;br /&gt;		number = number / 10;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	/* multiply the reversed digits by the powers of ten */&lt;br /&gt;	for (int i=pos-1; i&gt;=0; i--) {&lt;br /&gt;		m += power * digits[i];&lt;br /&gt;		power *= 10;&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	return m;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* main */&lt;br /&gt;int main() {&lt;br /&gt;	int nc; /* number of cases */&lt;br /&gt;	int m; /* minimum number of iterations */&lt;br /&gt;	unsigned long long n; /* number */&lt;br /&gt;	&lt;br /&gt;	cin &gt;&gt; nc;&lt;br /&gt;	&lt;br /&gt;	/* reverse and add.. */&lt;br /&gt;	for (int i=0; i&lt;nc; i++) {&lt;br /&gt;		cin &gt;&gt; n;&lt;br /&gt;		m = 0;&lt;br /&gt;		while (true) {&lt;br /&gt;			if (reverse(n) == n) {&lt;br /&gt;				break;&lt;br /&gt;			} else {&lt;br /&gt;				n += reverse(n);&lt;br /&gt;				m++;&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;		cout &lt;&lt; m &lt;&lt; " " &lt;&lt; n &lt;&lt; endl;&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	return 0;&lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 14 Apr 2008 01:38:45 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5359</guid>
      <author>jmftrindade (Joana M. F. da Trindade)</author>
    </item>
  </channel>
</rss>
