基础算法:大数除以一个数
信息学奥赛:1175:除以13
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
输入一个大于0的大整数N,长度不超过100位,要求输出其除以13得到的商和余数。
【输入】
一个大于0的大整数,长度不超过100位。
【输出】
两行,分别为整数除法得到的商和余数。
【输入样例】
2132104848488485
【输出样例】
164008065268345
0
#include
using namespace std;
//第一数组-全局定义默认都为0
int a[300],k1=0,k2=0,len1,len2,len,n,c[300];
//定义的变量指针,可以存储数据
void read(int *m,int &l){
string s; //字符串定义
cin>>s;
l = s.size();
int k = 0;
for( int i=0;i<l;i++){
m[k] = s[i] - 48;
k++;
}
}
int main(){
//获取数据,转化为int类,反转
read(a,len1);
int r;
// scanf("%d",&n);
n=13;
r=0;
for(int i = 0; i<len1; i++){
c[i]=(a[i]+r*10)/n;
r=(a[i]+r*10-n*c[i]);
}
//处理先导0问题
int mark = 0;
for(int i=0;i<len1;i++){
if(c[i]==0&mark ==0) continue;
else mark=1;
cout<<c[i];
}
cout<<endl;
cout<<r%10;
return 0;
}