不得不说poj 2305是一道进制转换的经典题目。一开始我没有考虑到整除的情况。所以总是WA。后来加了一个判断就AC了。
#include<iostream>
#include<cstring>
using namespace std;
char s1[1005],s2[15];
int main()
{
int n;
while(cin>>n&&n)
{
cin>>s1>>s2;
__int64 a=0,b=0;int len1,len2;
len1=strlen(s1);len2=strlen(s2);
for(int i=0;i<len2;i++)
{
a*=n;
a+=s2[i]-'0';
}
for(int j=0;j<len1;j++)
{
b*=n;
b+=s1[j]-'0';
if(b>=a)
b%=a;
}
int k=0;
if(b==0)
{
cout<<"0"<<endl;
continue;
}
while(b!=0)
{
s2[k++]=b%n+'0';
b/=n;
}
s2[k]='\0';
int len=strlen(s2);
for(k=len-1;k>=0;k--)
cout<<s2[k];
cout<<endl;
}
return 0;
}
posted on 2010-08-19 11:26
崔佳星 阅读(1138)
评论(0) 编辑 收藏 引用 所属分类:
POJ