很久没做题了...一想到要去 遥远的 牡丹江 我就-------------
这题 没什么好说的 就是个十进制的数转换成任意进制的数
就是要注意下 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 }
today:
重感冒了
身体被自己搞差了
fml
时间: 2024-10-11 18:03:23