1022 D进制的A+B

一.问题:

        输入两个非负 10 进制整数 A 和 B (≤230−1),输出 A+B 的 D (1

输入格式:

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

输出格式:

输出 A+B 的 D 进制数。

输入样例:

123 456 8

输出样例:

1103

二.思路:

        本题目注意,A+B等于0时候的情况,此时不管是转换为几进制都是0!

三.代码:

#include
#include
void func(int sum,int D)
{
    int*str = (int*)malloc(sizeof(char)*1000);
    int shang = sum;
    int yu;
    int i;
    for(i =0;shang != 0;i++)
    {
        yu = shang % D;
        shang /= D;
        str[i] = yu;
    }
    //输出
    i--;
    while(i>=0)
    {
        printf("%d",str[i]);
        i--;
    }
    free(str);
}
int main()
{
    int A,B,D;
    scanf("%d %d %d",&A,&B,&D);
    //判断A+B是否等于0
    if(A+B == 0)
    {
        printf("0");
    }
    else
    {
        func(A+B,D);
    }
    putchar('\n');
    return 0;
}

你可能感兴趣的:(PTA,(Basic,level)部分题目解析,算法,数据结构)