题意:给出进制B,两个十进制数X,Y,求X、Y转化成B进制的数后进行无进位加法后得到的数再转成十进制的结果
思路:。。。
#include<stdio.h>
int t,C,b,x,y,z,l,i,p,a[30];
int main(){
scanf("%d",&t);
while(t--){
scanf("%d%d%d%d",&C,&b,&x,&y);
for(i=0;i<30;a[i++]=0);
for(i=0;x;a[i++]=x%b,x/=b);
l=i;
for(i=0;y;a[i]+=y%b,a[i++]%=b,y/=b);
if(l<i)l=i;
for(i=0,z=0,p=1;i<l;z+=a[i]*p,p*=b,++i);
printf("%d %d\n",C,z);
}
}
本文介绍了一种将十进制数X、Y转化为特定进制B后的无进位加法运算,并将结果转回十进制的过程。通过循环、取余等基本算法操作,实现了一个简洁高效的进制转换与加法处理流程。
254

被折叠的 条评论
为什么被折叠?



