首页 > 代码库 > hdu--4432--好久没做题了.

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         else49             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

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