PAT 1022. D进制的A+B (20)

1022. D进制的A+B (20)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。

输入格式:

输入在一行中依次给出3个整数A、B和D。

输出格式:

输出A+B的D进制数。

输入样例:
123 456 8
输出样例:
1103

#include<stdio.h>
#include<math.h>
int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    int d=a+b;
    int i,k=0;
    if(c!=10){
    for(i=1;;i++)
    {
        if((d/pow(c,i))<1)
        {
            k=i;
            break;
        }
    }
    int m[k];
    for(i=k-1;i>=0;i--)
    {
        m[k-i]=d/pow(c,i);
        //d=d-pow(c,i);
        if(d>=pow(c,i))
        {
            d=d-pow(c,i);
        }
        else
            continue;
        //printf("%d ",m[k-i]);
    }
    for(i=1;i<=k;i++)
    {
        printf("%d",m[i]);
    }
    }
    else if(c==10)
        printf("%d",d);
    return 0;
}




猜你喜欢

转载自blog.csdn.net/qq_38290604/article/details/78648534