预计阅读时间:5分钟
原题
描述
输入一个大于0的大整数N,长度不超过100位,要求输出其除以13得到的商和余数。
输入
一个大于0的大整数,长度不超过100位。
输出
两行,分别为整数除法得到的商和余数。
样例输入
2132104848488485
样例输出
164008065268345 0
提示
模拟除法运算,商的长度应该比输入大整数的长度少1或2。
思路
高精度除法
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1;
int a[110];
int r[100];
cin>>s1;
int len=s1.length();
for(int i=1; i<=len; i++)
{
a[i]=s1[i-1]-'0';//s1的每一位放入a数组当中
}
a[0]=len;
int t=0;
for(int i=1; i<=a[0]; i++)//高精度除法
{
t=t*10+a[i];
r[i]=t/13;
t=t%13;
}
int k=1;
while(k<a[0]&&r[k]==0)//去除前导0
{
k++;
}
for(int i=k; i<=a[0]; i++)//输出
{
cout<<r[i];
}
cout<<'\n';
cout<<t<<'\n';
return 0;
}
彩蛋:最后,附上本人收集的高精度计算器,实用方法看说明
点击下方链接免费下载:
希望本博客对大家有所帮助