poj 2305 Basic remains 高精度取余

来源:互联网 发布:办公室政治知乎 编辑:程序博客网 时间:2024/05/17 21:43

题意:

裸的高精度取余。

分析:

http://blog.csdn.net/sepnine/article/details/44092055有poj 1220任意进制转换的代码,这题用到其中的一部分,可作对比。

代码:

//poj 2305//sep9#include <iostream>using namespace std;int b,m;char s1[1024],s2[16],ans[16];int p[1024];int main(){while(scanf("%d",&b)==1&&b){scanf("%s%s",s1,s2);int k,i;k=strlen(s2);for(m=i=0;i<k;++i)m=m*b+s2[i]-'0';k=strlen(s1);for(i=k-1;i>=0;--i)p[k-1-i]=s1[i]-'0';for(i=k-1;i>0;--i){p[i-1]+=p[i]%m*b;p[i]/=m;}int l=0,a=p[0]%m;if(!a){puts("0");continue;}while(a){ans[l++]=a%b;a/=b;}for(i=l-1;i>=0;--i)printf("%d",ans[i]);puts("");}return 0;} 

0 0