华师一附中OI组
标题: P1480 A/B Problem [打印本页]
作者: universehyf 时间: 2018-9-16 14:02
标题: P1480 A/B Problem
题目描述输入两个整数a,b,输出它们的商(a<=10^5000,b<=10^9)
输入输出格式输入格式:
两行,第一行是被除数,第二行是除数。
输出格式:
一行,商的整数部分
作者: universehyf 时间: 2018-9-16 14:03
高除低
- #include<iostream>
- using namespace std;
- string n;
- int a[10010],b[10010],c,l,i,j,x,y;
- int main()
- {
- cin>>n>>c;l=n.size();
- for(i=0;i<l;i++) a[i]=n[i]-'0';
- for(i=0;i<l;i++)
- {
- a[i]+=x*10;
- b[j++]=a[i]/c;
- x=a[i]%c;
- }j--;i=0;
- while(b[i]==0&&i!=j) i++;
- for(;i<=j;i++) cout<<b[i];
- return 0;
- }
复制代码
作者: universehyf 时间: 2018-9-16 14:04
高除高
- #include<iostream>
- using namespace std;
- int a[10010],b[10010],c[10010];
- int la,lb,ll,i,j;
- string a1,a2;
- void input()
- {
- cin>>a1>>a2;
- la=a1.size();lb=a2.size();ll=la-lb;
- for(i=0;i<=la-1;i++) a[i]=a1[i]-'0';
- for(i=0;i<=lb-1;i++) b[i]=a2[i]-'0';
- }
- bool compar()
- {
- for(i=0;i<=lb-1;i++)
- {
- if(a[i]<b[i]) return false;
- if(a[i]>b[i]) return true;
- }
- return true;
- }
- void compa()
- {
- if((ll<0)||((ll==0)&&(!compar())))
- cout<<'0';
- }
- void jian(int x)
- {
- if(x!=0)
- {
- a[1]+=a[0]*10;
- for(i=0;i<la;i++) a[i]=a[i+1];
- la--;
- }
- while(compar())
- {
- for(i=lb-1;i>=0;i--)
- {
- if(a[i]<b[i])
- {
- a[i-1]--;
- a[i]+=10;
- }
- a[i]=a[i]-b[i];
- }
- c[x]++;
- }
- }
- void divide()
- {
- for(j=0;j<=ll;j++)
- jian(j);
- }
- void printt()
- {
- i=0;while((i<=ll)&&(c[i]==0)) i++;
- for(;i<=ll;i++) cout<<c[i];
- }
- int main()
- {
- input();
- compa();
- divide();
- printt();
- return 0;
- }
复制代码
欢迎光临 华师一附中OI组 (http://hsyit.cn/) |
Powered by Discuz! X3.2 |