概述
目录
- 一、题目
- 二、我的AC代码
一、题目
本题要求计算
A
/
B
A/B
A/B,其中
A
A
A 是不超过 1000 位的正整数,
B
B
B 是
1
1
1 位正整数。你需要输出商数
Q
Q
Q 和余数
R
R
R,使得
A
=
B
×
Q
+
R
A=B times Q+R
A=B×Q+R 成立。
输入格式:
输入在一行中依次给出
A
A
A 和
B
B
B,中间以
1
1
1 空格分隔。
输出格式:
在一行中依次输出
Q
Q
Q 和
R
R
R,中间以
1
1
1 空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
代码长度限制 16 KB
时间限制 100 ms
内存限制 64 MB
二、我的AC代码
#include <stdio.h>
#define MaxLength 1000 //输入的正整数不超过1000位数字。
int main(void)
{
char A[MaxLength + 1]; //A是被除数,因为位数多,所以读取为字符串(字符数组)。
int B; //B是除数。
scanf("%s %d", A, &B); //A为字符数组,自身为字符数组的首字符的地址,不需要取地址符。
char Q[MaxLength + 1]; //Q是商,被除数的位数多,那么商的位数也多,所以商也用字符数组存放。
int R = 0; //R是余数。
int temp = 0; //temp用于存放从A中逐位取出的数字,不超过两位数,作为临时的被除数。
int index = 0; //index为商(字符数组Q)的下标。
/* 商的计算,逐位计算出商的每一位数字 */
for(int i=0; A[i]!='