华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 859|回复: 2
打印 上一主题 下一主题

P1480 A/B Problem

[复制链接]

14

主题

106

帖子

317

积分

中级会员

Rank: 3Rank: 3

积分
317
跳转到指定楼层
楼主
发表于 2018-9-16 14:02:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
题目描述
输入两个整数a,b,输出它们的商(a<=10^5000,b<=10^9)
输入输出格式输入格式:

两行,第一行是被除数,第二行是除数。

输出格式:

一行,商的整数部分

回复

使用道具 举报

14

主题

106

帖子

317

积分

中级会员

Rank: 3Rank: 3

积分
317
沙发
 楼主| 发表于 2018-9-16 14:03:22 | 只看该作者
高除低
  1. #include<iostream>
  2. using namespace std;
  3. string n;
  4. int a[10010],b[10010],c,l,i,j,x,y;
  5. int main()
  6. {
  7.     cin>>n>>c;l=n.size();
  8.     for(i=0;i<l;i++) a[i]=n[i]-'0';
  9.     for(i=0;i<l;i++)
  10.     {
  11.         a[i]+=x*10;
  12.         b[j++]=a[i]/c;
  13.         x=a[i]%c;
  14.     }j--;i=0;
  15.     while(b[i]==0&&i!=j) i++;
  16.     for(;i<=j;i++) cout<<b[i];
  17.     return 0;
  18. }
复制代码
回复 支持 反对

使用道具 举报

14

主题

106

帖子

317

积分

中级会员

Rank: 3Rank: 3

积分
317
板凳
 楼主| 发表于 2018-9-16 14:04:06 | 只看该作者
高除高
  1. #include<iostream>
  2. using namespace std;
  3. int a[10010],b[10010],c[10010];
  4. int la,lb,ll,i,j;
  5. string a1,a2;
  6. void input()
  7. {
  8.     cin>>a1>>a2;
  9.     la=a1.size();lb=a2.size();ll=la-lb;
  10.     for(i=0;i<=la-1;i++) a[i]=a1[i]-'0';
  11.     for(i=0;i<=lb-1;i++) b[i]=a2[i]-'0';
  12. }
  13. bool compar()
  14. {
  15.     for(i=0;i<=lb-1;i++)
  16.     {
  17.         if(a[i]<b[i]) return false;
  18.         if(a[i]>b[i]) return true;
  19.     }
  20.     return true;
  21. }
  22. void compa()
  23. {
  24.     if((ll<0)||((ll==0)&&(!compar())))
  25.         cout<<'0';
  26. }
  27. void jian(int x)
  28. {
  29.     if(x!=0)
  30.     {
  31.         a[1]+=a[0]*10;
  32.         for(i=0;i<la;i++) a[i]=a[i+1];
  33.         la--;
  34.     }
  35.     while(compar())
  36.     {
  37.         for(i=lb-1;i>=0;i--)
  38.         {
  39.             if(a[i]<b[i])
  40.             {
  41.                 a[i-1]--;
  42.                 a[i]+=10;
  43.             }
  44.             a[i]=a[i]-b[i];
  45.         }
  46.         c[x]++;
  47.     }
  48. }
  49. void divide()
  50. {
  51.     for(j=0;j<=ll;j++)
  52.         jian(j);
  53. }
  54. void printt()
  55. {
  56.     i=0;while((i<=ll)&&(c[i]==0)) i++;
  57.     for(;i<=ll;i++) cout<<c[i];
  58. }
  59. int main()
  60. {
  61.     input();
  62.     compa();
  63.     divide();
  64.     printt();
  65.     return 0;
  66. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-11-2 06:29 , Processed in 0.100201 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表