题目描述:

输入两个正整数,求它们的商和余数。

分析:

高精度除以高精是用减法模拟除法,对被除数的每一位都减去除数,一直减到当前位置的数字小于除数。

代码:

#include<bits/stdc++.h>
using namespace std;
#define MAX 105
int a[MAX],b[MAX],c[MAX],d,i;
void init(int a[]){string s;cin>>s;a[0]=s.length();for(int i=1;i<=a[0];i++) a[i]=s[a[0]-i]-'0';
}
void print(int a[]){int i;if(a[0]==0){cout<<0<<endl;return;}for(i=a[0];i>0;i--) cout<<a[i];cout<<endl;return;
}
int compare(int a[],int b[]){//比较a和b的大小关系,若a>b则返回1,若a<b则返回-1,若a=b则返回0 int i;if(a[0]>b[0]) return 1;if(a[0]<b[0]) return -1;for(i=a[0];i>0;i--){if(a[i]>b[i]) return 1;if(a[i]<b[i]) return -1;}return 0;
}
void jian(int a[],int b[]){int flag,i;flag=compare(a,b);if(flag==0){a[0]=0;return;}if(flag==1){for(i=1;i<=a[0];i++){if(a[i]<b[i]){//借位 a[i+1]--;a[i]+=10;}a[i]-=b[i]; }while(a[0]>0&&a[a[0]]==0) a[0]--;//修正a的位数return; }
}
void numcpy(int p[],int q[],int det){for(int i=1;i<=p[0];i++) q[i+det-1]=p[i];q[0]=p[0]+det-1;
}
void chugao(int a[],int b[],int c[]){int i,tmp[MAX];c[0]=a[0]-b[0]+1;for(i=c[0];i>0;i--){memset(tmp,0,sizeof tmp);numcpy(b,tmp,i);while(compare(a,tmp)>=0){c[i]++;jian(a,tmp);}}while(c[0]>0&&c[c[0]]==0) c[0]--;return;
}
int main(){memset(a,0,sizeof a);memset(b,0,sizeof b);memset(c,0,sizeof c);init(a);init(b);chugao(a,b,c);print(c);print(a);return 0;
}

【高精度】高精度除以高精度 C++题解相关推荐

  1. 高精度除法:高精度除以低精度

    本编仅限于除数是低精度的情况!!! 基本思想 一位数一位数地与除数相除,余数乘10加入下一位上 举例说明 148除以6 首先用1除以6,得0,余1 再用(1x10+4)除x以6,得2,余2(1是上一位 ...

  2. 高精度除法(高精度除以高精度)

    #include <bits/stdc++.h> using namespace std; int a[101],b[101],c[101],d,i; void shuru(int a[] ...

  3. python高精度加法_14.高精度加法

    作者:X3B0A1 1.0 问题 在我们熟悉的数据类型中,能够储存的最大的数也只是longlong的范围. 虽然有些编译器也提供__int128类型,但是最多也只能表示40位左右的数,大小依然有限,而 ...

  4. java求小数高精度_浅谈Java中的高精度整数和高精度小数

    在实际编码中,会遇到很多高精度的事例,比如,在计算金钱的时候就需要保留高精度小数,这样计算才不会有太大误差: 在下面的代码中,我们验证了,当两个float型的数字相加,得到的结果和我们的预期结果是有误 ...

  5. (压位)高精度乘法,高精度加法,高精度减法,高精度除法

    大值 乘 大值: 题目链接:https://www.luogu.com.cn/problem/P1303 # include <iostream> # include <string ...

  6. 高精度阶乘和 高精度算法(c语言)

    以前刷oj的时候 遇见一个题目 也就是输入一个数字 判断阶乘和 用高精度计算出S=1!+2!+3!+-+N!(N≤50),其中"!"表示阶乘, 例如:5!=5*4*3*2*1.输入 ...

  7. matlab高精度工具箱,[转载]高精度捷联惯性导航系统Matlab工具箱

    工具箱主要功能: 1) 姿态向量.四元数.矩阵.滤波算法等各类子程序 2) 圆锥运动仿真 划船运动仿真 惯性器件随机误差仿真 3) Kalman滤波初始对准 基于惯性系初始对准 罗经法初始对准 大方位 ...

  8. 求高精度幂 java_JAVA高精度_求高精度幂

    要想用Java轻快的水过这道题,要先了解下JAVA.math中的几个方法 1.Java.math.BigDecimal.toPlainString() 返回此BigDecimal的字符串表示形式不带指 ...

  9. 高精度算法(大整数的加减乘除运算)

    1.什么是高精度数 ​ 在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字.一般这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据的一种模拟加.减.乘.除 ...

最新文章

  1. chrome开发者工具功能拾遗:Sources面板篇
  2. word存为html图片有两个,如何批量保存Word图片?另存为Word多个图片的方法
  3. java获取URL参数(get方式,并且你不知道他末尾有什么参数名)
  4. SAP Fiori s2 controller init
  5. 《深入理解JVM.2nd》笔记(三):垃圾收集器与垃圾回收策略
  6. makefile深度学习(一个工程实例来学习 Makefile)
  7. 阿里云提示微擎被挂图片木马详解
  8. STM32F103:三.(2)红外接收
  9. 【自】数据库系统原理(三)——测试总结后,
  10. 从头来之【iOS及历史版本特性介绍】
  11. python简单数据类型变量_python-2-变量和简单数据类型
  12. 拜水都江堰,问道青城山
  13. Xmind 8 下载以及破解
  14. mariaDB安装与配置
  15. linux git ssh目录权限,Git SSH Key的配置问题
  16. 开发一个App大概要多少钱?只讲干货
  17. NumPy基础之大作业(Iris数据分析)
  18. 前端安全跨站脚本攻击
  19. 互联网时代,怎么做到真正的信息安全?
  20. STM32+ESP-01对接阿里飞燕平台

热门文章

  1. 蠕虫病毒 incaseformat 在国内肆虐,可导致用户数据丢失
  2. 如何在word中制作线宽不同的三线表
  3. Excel也可以播放MV
  4. unity2D横版游戏教程-3 Cinemachine镜头移动
  5. ArcGIS教程:分水岭的工作原理
  6. Mac上常用软件-2018
  7. 如何给视频配上字幕?教你几种视频配字幕小妙招
  8. Firefox浏览器版本66的下载链接
  9. win10家庭版如何修改用户名对应的用户文件夹下的用户文件名字(中文该成英文字符)
  10. 数据库基本术语DDL,DML, DCL