superman

聚精会神搞建设 一心一意谋发展
posts - 190, comments - 17, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Section 1.2 - Palindromic Squares

Posted on 2009-03-16 14:43 superman 阅读(73) 评论(0)  编辑 收藏 引用 所属分类: USACO
 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 //convert a number to string in base b
 6 string num2string(int n, int b)
 7 {
 8     string s;
 9     while (n)
10     {
11         s += "0123456789ABCDEFGHIJ"[n % b];
12         n /= b;
13     }
14     for (unsigned i = 0; i < s.size()/ 2; i++)
15         swap(s[i], s[s.size() - i - 1]);
16     return s;
17 }
18 
19 bool isPalindrome(const string & s)
20 {
21     for (unsigned i = 0; i < s.size() / 2; i++)
22         if (s[i] != s[s.size() - i - 1])
23             return false;
24     return true;
25 }
26 
27 int main()
28 {
29     freopen("palsquare.in""r", stdin);
30     freopen("palsquare.out""w", stdout);
31 
32     int b;
33     cin >> b;
34     for (int i = 1; i <= 300; i++)
35         if (isPalindrome(num2string(i * i, b)) == true)
36             cout << num2string(i, b) << ' ' << num2string(i * i, b) << endl;
37 
38     return 0;
39 }
40 

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理