总时间限制: 1000ms 内存限制: 65536kB描述
输入一个大于0的大整数N,长度不超过100位,要求输出其除以13得到的商和余数。
输入一个大于0的大整数,长度不超过100位。输出两行,分别为整数除法得到的商和余数。样例输入
2132104848488485
样例输出
164008065268345
0
提示模拟除法运算,商的长度应该比输入大整数的长度少1或2。来源习题(12-11)
1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 using namespace std;
5 char a1[10001];
6 int a[10001];
7 int c[10001];
8 int main()
9 {
10 gets(a1);
11 int la=strlen(a1);
12 for(int i=0;i<la;i++)
13 {
14 a[i+1]=a1[i]-48;
15 }
16 int x=0;//商
17 for(int i=1;i<=la;i++)
18 {
19 c[i]=(x*10+a[i])/13;
20 x=(x*10+a[i])%13;
21 }
22 int lc=1;
23 for(int i=1;i<=la;i++)
24 {
25 if(c[i]==0&&lc<la)
26 lc++;
27 else break;
28 }
29 for(int i=lc;i<=la;i++)
30 cout<<c[i];
31 cout<<endl;
32 cout<<x;
33 return 0;
34 }