您的位置:首页 > 其它

UVALive 4874 进制转换

2011-07-29 20:57 267 查看
#include <iostream>

#include <cstdio>

#include <cstring>

#include <algorithm>

#include <cctype>

#include <cstdlib>

#define MAX 10000

using namespace std;

int M,N;

int B;

int x[MAX];

int y[MAX];

int To_B(int n,int a[])

{

//cout<<"***\n";

int count = 0;

while(1)

{

a[count++] = n % B;

n /= B;

if(n == 0) break;

}

// cout<<count<<endl;

return count;

}

int deal()

{

//cout<<"deal\n";

int len1 = To_B(M,x);

int len2 = To_B(N,y);

int temp[MAX];

memset(temp,0,sizeof(temp));

int i,cc = 0;

for( i = 0;i < len1 || i < len2;i++)

temp[cc++] = (x[i]+y[i])%B;

int r = 0;

int ff = 1;

for(int k = 0;k < cc;k++)

{

r += temp[k] * ff;

ff *= B;

}

return r;

}

int main()

{

freopen("in.in","r",stdin);

int test_case;

cin>>test_case;

while(test_case--)

{

int cas;

cin>>cas;

cout<<cas<<" ";

cin>>B>>M>>N;

memset(x,0,sizeof(x));

memset(y,0,sizeof(y));

int temp = deal();

cout<<temp<<endl;

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: