superman

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

ZOJ 1334 - Basically Speaking

Posted on 2008-06-23 18:39 superman 阅读(509) 评论(0)  编辑 收藏 引用 所属分类: ZOJ
 1 /* Accepted 1334 C++ 00:00.00 840K */
 2 #include <iostream>
 3 
 4 using namespace std;
 5 
 6 char c[] = "0123456789ABCDEF";
 7 
 8 void convert(string & num, int s, int t)
 9 {
10     if(s == t)
11     {
12         printf("%7s\n", num.c_str());
13         return;
14     }
15     
16     int n = 0;
17     for(int i = 0; i < num.size(); i++)
18     {
19         int m = 1;
20         for(int k = 1; k < num.size() - i; k++)
21             m *= s;
22         if(num[i] >= 'A' && num[i] <= 'F')
23             n += (num[i] - 'A' + 10* m;
24         else
25             n += (num[i] - '0'* m;
26     }
27     
28     string str;
29     while(n)
30     {
31         str += c[n % t];
32         n /= t;
33     }
34     
35     if(str.size() > 7)
36         printf("%7s\n""ERROR");
37     else
38     {
39         for(int i = 0; i < str.size() / 2; i++)
40             swap(str[i], str[str.size() - i - 1]);
41         printf("%7s\n", str.c_str());
42     }
43     return;
44     
45     cout << endl;
46 }
47 
48 int main()
49 {
50     string num;
51     int s, t;
52     
53     while(cin >> num >> s >> t)
54         convert(num, s, t);
55     
56     return 0;
57 }
58 

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