【题目描述】
输入一个大于0的大整数N,长度不超过100位,要求输出其除以13得到的商和余数。
【输入】
一个大于0的大整数,长度不超过100位。。
【输出】
两行,分别为整数除法得到的商和余数。。
【输入样例】
2132104848488485
【输出样例】
164008065268345
0
【参考程序】
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
#define SIZE 101
char a1[SIZE];
int k; // 除数
int x; // 余数
int lena, lenb;
int a[SIZE]; // 被除数
int b[SIZE]; // 商
int main() {
x = 0; // x余数
k = 13; // 除数
gets(a1); // 被除数字符串
lena = strlen(a1);
for (int i=0; i<lena; i++) {
a[i+1] = a1[i] - 48; // 将字符串a1 转存到 整型数组a,正序存储
}
for (int i=1; i<=lena; i++) {
b[i] = (x*10 + a[i]) / k; // 将之前的余数加上新的一位再除以13
x = (x*10 + a[i]) % k; // 求出余数
}
lenb = 1;
while ((b[lenb]==0) && (lenb<lena)) { // 删去前导多余的0
lenb++;
}
for (int i=lenb; i<=lena; i++) { // 输出商
cout << b[i];
}
cout << endl << x; // 输出余数
return 0;
}
该博客主要介绍如何处理长度不超过100位的大整数除以13的问题,给出输入样例和输出样例,并可能涉及具体的算法实现细节,旨在帮助理解大整数除法的处理方法。
1093

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



