A除以B

本題要求計算A/B,其中A是不超過1000位的正整數,B是1位正整數。你需要輸出商數Q和餘數R,使得A = B * Q + R成立。

輸入格式:
輸入在1行中依次給出A和B,中間以1空格分隔。
輸出格式:
在1行中依次輸出Q和R,中間以1空格分隔。

輸入樣例:
123456789050987654321 7
輸出樣例:
17636684150141093474 3


代碼

#include<stdio.h>
#include<string.h>

int main()
{
    char A[1000] = {'0'};
    int B = 0;
    char Q[1000] = {'0'};
    int R;

    scanf("%s %d",A,&B);
    int i = 0;
    int q = A[0] - '0';

    //A is a single number
    if((strlen(A) == 1) && (A[0] - '0' < B))
    {
        printf("%d %d",0,A[0] - '0');
    }

    else if(A[0] - '0' < B)
    {
        Q[0] = 0 + '0';
        for(i = 1; i < strlen(A); i++)
        {
            R = q % B;
            q = R *  10 + A[i] - '0';
            Q[i] = q/B + '0';
        }
        R = q % B;
        for(i = 1;i < strlen(A);i++)
        {
            printf("%c",Q[i]);
        }
        printf(" %d",R);
    }

    else
    {
        Q[0] = q/B + '0';
        for(i = 1; i < strlen(A); i++)
        {
            R = q % B;
            q = R *  10 + A[i] - '0';
            Q[i] = q/B + '0';
        }
        R = q % B;
        printf("%s %d",Q,R);
    }

    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章