總時間限制:
1000ms
內存限制:
65536kB
描述
輸入一個大於0的大整數N,長度不超過100位,要求輸出其除以13得到的商和餘數。
輸入
一個大於0的大整數,長度不超過100位。
輸出
兩行,分別爲整數除法得到的商和餘數。
樣例輸入
2132104848488485
樣例輸出
164008065268345 0
提示
模擬除法運算,商的長度應該比輸入大整數的長度少1或2。
這裏高精度的話,我就寫了一個這題題目的AC的代碼,代碼有比較詳細的註釋,可以當作模板來使用
#include<bits/stdc++.h>
using namespace std;
string s1;
int a[110];
int r[100];
int main()
{
cin>>s1;
int len=s1.length();//字符串的長度
for(int i=1;i<=len;i++) //從1到n
{
a[i]=s1[i-1]-'0';
}
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) k++; //去除前導零
for(int i=k;i<=a[0];i++)
{
cout<<r[i]; //輸出商
}
cout<<endl<<t<<endl; //輸出餘數
return 0;
}