1308:【例1.5】高精除

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 15501     通过数: 7597

【题目描述】

高精除以高精,求它们的商和余数。

【输入】

输入两个低于300位的正整数。

【输出】

输出商和余数。

【输入样例】

1231312318457577687897987642324567864324567876543245671425346756786867867867
1231312318767141738178325678412414124141425346756786867867867

【输出样例】

999999999748590
179780909068307566598992807564736854549985603543237528310337

用了三天时间完成

用的字符处理,如果用整形数组,在做除时,大约一个道理

#include<iostream>
#include<cmath> 
#include<cstring>
char a[305],b[305],c[3005],sum[305];
int dashuchu(char p[],char q[],int n,int i)//大数除法,pq没用,就是ab 
{
    int x,y=0,k;
    do    {
        for(x=n-1;x>=0;x--)//从个位开始计算 
    {
        if(a[x]<b[x]){//先比较大小,要够减的 
            a[x-1]--;//高位减1,低位 加10 
            a[x]+=10;
        }
        a[x]=a[x]-b[x]+'0';//减出来 
        } y++;//就 是商1了 
     }while(strcmp(a,b)>0||strcmp(a,b)==0);//当a不小于b时,继续做 
    for(x=0,k=i;x<n;x++,k++)
    c[k]=a[x];// 做完了除(就是减),a把余下的归还c的相应数位 
    return y;//返还减的次数(即商) 
}
using namespace std;
int main()
{
    scanf("%s\n %s",c,b);//被除数和除数 
    int m,n,j,i,t;
    n=strlen(b);// 字串的长度 ,除数的长度,下面用的较多 
    m=strlen(c);
    for(i=0;i<=m-n;i++)//商的长度最大是m-n+1,置0字符 
    sum[i]='0';
    for(i=0;i<=m-n;i++){//开始计算,从0位即高位开始,商位数是m-n+1或是m-n 
    //从这再开始计算 
    for(j=0,t=i;j<n;j++,t++)//从c被除数中取和除数相同位数的字串
                           //到a中,从0位开始 
    a[j]=c[t];
    a[j]='\0';//最后加字串结束符号 
    if(strcmp(a,b)>=0)//如果能除,有商 
    sum[i]+=(char)dashuchu(a,b,n,i); //相应的商位上,放上数 
        //a是被除数,最后是余下的;b是除数,不变;n除数长度,i第几位了
    {       //a不大于b时 
    c[i+1]=(c[i]-'0')*10+c[i+1];//剩下的被除数高位*10加在低一个的位上 
    c[i]='\0';//原来的位上放字符0 
    
    }//这样求出商的一位,再从上面的循环再开始 
      }
      i=0;
      while(sum[i]=='0')i++;//erase the zero.
      for(;i<m-n+1;i++)//不能大于商的长度 
      putchar(sum[i]);
      printf("\n");
      i=0;
      while(a[i]=='0')i++;//找余数,去0 
      if(i==n)//全是0 
      printf("0");
      else 
      for(;i<n;i++)
     putchar(a[i]);//还剩下的 
    return 0;
}

信息学奥赛一本通:1308:【例1.5】高精除相关推荐

  1. 信息学奥赛一本通 1308:【例1.5】高精除

    [题目链接] ybt 1308:[例1.5]高精除 [题目考点] 1. 高精度 考察:高精除以高精 高精度计算讲解 [题解代码] 解法1:使用数组与函数 #include<bits/stdc++ ...

  2. 【例1】 0/1背包《信息学奥赛一本通》【解法一】 02

    /* [例1] 0/1背包<信息学奥赛一本通>[解法一] 02 http://ybt.ssoier.cn:8088/problem_show.php?pid=1267 */ #includ ...

  3. 【例8】合唱队形(《信息学奥赛一本通第五版》)

    /* [例8]合唱队形(<信息学奥赛一本通第五版>) http://ybt.ssoier.cn:8088/problem_show.php?pid=1264 [问题描述] N位同学站成一排 ...

  4. 信息学奥赛一本通 2021:【例4.6】最大公约数

    [题目链接] ybt 2021:[例4.6]最大公约数 [题目考点] 1. while循环 2. 求最大公约数 辗转相减法 辗转相除法 [解题思路] 解法1:枚举 取较小数字,从该数字的值开始从大到小 ...

  5. 信息学奥赛一本通(2032:【例4.18】分解质因数)

    2032:[例4.18]分解质因数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 582     通过数: 376 [题目描述] 把一个合数分解成若干个质因数乘积 ...

  6. 信息学奥赛一本通——2062:【例1.3】电影票

    2062:[例1.3]电影票 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 57341     通过数: 34230 [题目描述] 已知一位小朋友的电影票价是10 ...

  7. 信息学奥赛一本通 1278:【例9.22】复制书稿(book) | 洛谷 P1281 书的复制

    [题目链接] ybt 1278:[例9.22]复制书稿(book) 洛谷 P1281 书的复制 [题目考点] 1. 动态规划:线性动规 [解题思路] 该题可以抽象为:将由m个数字构成的序列分成k个子段 ...

  8. 信息学奥赛一本通1267:【例9.11】01背包问题(二维dp与滚动数组优化)

    [题目描述] 一个旅行者有一个最多能装 MM 公斤的背包,现在有 nn 件物品,它们的重量分别是W1,W2,...,WnW1,W2,...,Wn,它们的价值分别为C1,C2,...,CnC1,C2,. ...

  9. 信息学奥赛一本通C++语言-----2036:【例5.3】开关门

    [题目描述] 宾馆里有n(2≤n≤1000)n(2≤n≤1000) 个房间,从1∼n1∼n 编了号.第一个服务员把所有的房间门都打开了,第二个服务员把所有编号是22 的倍数的房间"相反处理& ...

  10. 信息学奥赛一本通——2068:【例2.6】鸡兔同笼

    大家好(๑╹◡╹)ノ" 这里是小蒟蒻 一天没更新了呢! 今天给大家带来<信息学奥赛一本通--2068:[例2.6]鸡兔同笼> 题目: 2068:[例2.6]鸡兔同笼 时间限制: ...

最新文章

  1. Pthon JSON
  2. CMS模板应用调研问卷
  3. VTK:可视化之Kitchen
  4. bootstrap大图轮播手机端不能手指滑动解决办法
  5. vim7.1在windows下的编码设置[转]
  6. django (三) admin后台系统
  7. [SDOI2009]Bill的挑战——全网唯一 一篇容斥题解
  8. opencv16-Sobel算子
  9. 你解决的问题比你编写的代码更重要! 1
  10. 把数据对象转成字符串_R语言处理环境监测数据(2):时间数据处理
  11. mars java安卓视频教程下载_mars老师[Android开发视频教学].01_18 文件下载 源码
  12. IMX6ULL uboot启动分析(五)
  13. 用Java编写考试报名系统_基于jsp的计算机考试报名系统-JavaEE实现计算机考试报名系统 - java项目源码...
  14. ubuntu 或者虚拟机连接u盘
  15. 2019年Q1美国手游市场总收入24.3亿美元,中国手游贡献2.8亿美元
  16. SQL 面试用题(重点)
  17. 常规通知(Notification)模板
  18. 利用poi 读取excel通用工具类
  19. 动态路由协议RIP的深层配置学习
  20. 网络舆情事件预警与分析工作实施措施与流程详解

热门文章

  1. BUUCTF刷题记录 Ping Ping Ping
  2. APK包瘦身-追上那个胖子
  3. ARP与RARP协议原理解析
  4. python 链表中头结点的含义以及引入头结点的作用
  5. 基于SSM的在线课程教学系统
  6. 按方案探讨系列工业级无线网卡选型参考
  7. Android手机流畅度测试,选手机!教你测试手机流畅度
  8. 谷歌浏览器怎么缩放到130%
  9. 【仙女】Android网络诊断
  10. WingIDE注册破解方法