hdu--4432--好久没做题了.

很久没做题了...一想到要去 遥远的 牡丹江 我就-------------

这题 没什么好说的 就是个十进制的数转换成任意进制的数

就是要注意下 10进制以上的数 10是表示为A 11表示为B .........

好 贴代码 继续做一两题.

 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 
 5 vector<int>ve;
 6 int num[110];
 7 int sum , n , m;
 8 
 9 void solve( int n )
10 {
11     int cnt , x;
12     for( int i = 1 ; i<=n/i ; i++ )
13     {
14         if( n%i==0 )
15         {
16             ve.push_back(i);
17             if( i*i!=n )
18             {
19                 ve.push_back(n/i);
20             }
21         }
22     }
23     int ve_size = ve.size();
24     for( int i = 0 ; i<ve_size ; i++ )
25     {
26         cnt  = 0;
27         x = 1;
28         while( ve[i] )
29         {
30             num[cnt++] = ve[i]%m;
31             ve[i] /= m;
32         }
33         for( int j = 0 ; j<cnt ; j++ )
34         {
35             sum += num[j]*num[j];
36         }
37     }
38     cnt = 0;
39     while(sum)
40     {
41         num[cnt++] = sum%m;
42         sum /= m;
43     }
44     for( int k = cnt-1 ; k>=0 ; k-- )
45     {
46         if( num[k]>=10&&m>=11 )
47             cout << char(num[k]-10+'A');
48         else
49             cout << num[k];
50     }
51     cout << endl;
52 }
53 
54 int main()
55 {
56     cin.sync_with_stdio(false);
57     while( cin >> n >> m )
58     {
59         sum = 0;
60         ve.clear();
61         solve(n);
62     }
63     return 0;
64 }
View Code

today:

  重感冒了

  身体被自己搞差了

  fml

just follow your heart
原文地址:https://www.cnblogs.com/radical/p/4008436.html