[codevs3118]高精度除法<高精度>
题目链接:http://codevs.cn/problem/3118/
为了做一道名为国王游戏的贪心,我跑来学习了高精度除法。。。。相传,高精度除法是高精度四个基本运算最难的
但事实上,高精度除法可以看成其他高精度的组合。。。
我们班一位大佬告诉我,对于高精度除法这类的题,他一直都是二分出这个商,然后高精度乘法来check一下。。。。
当然这是方法之一。。。我在这道题用的方法是高精度减法来做高精度除法
【步骤】
1.找到除数与被除数相差的位数并记录下。。。设相差了x位,则除数与被除数的商最大为x+1位数。。。这个结论举个例子就知道了
2.然后我们从x+1位开始做。。让除数扩大10^x倍,变成和被除数相同的位数,然后比较大小,如果能减去就减去,设减去了i次,则商的x+1位为i
在这个地方我们用例子来说明:
3886218:被除数
56322:除数
3886218<56322*100不执行减法操作。。。3886218>56322*100,执行减法,可以减去6个56322*10变成506898
506898>56322,并且可以减去9个56322,变成0 ,所以商就是6*10+9,余数为0
说白了,高精度除法就是执行减法,看从被除数中最多可以减去多少个除数,所以高精度除法就是多次高精度减法
高精度除法模板:
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<iostream>
- #include<queue>
- #include<cstdlib>
- #include<cmath>
- #define maxn 1005
- using namespace std;
- int a1[maxn],a2[maxn],a3[maxn],a4[maxn];
- int len1,len2;
- char s1[maxn],s2[maxn];
- int check(int a[],int b[]){
- if(a[]<b[])return ;
- if(a[]>b[])return ;
- for(int i=a[];i>=;i--){
- if(a[i]>b[i])return ;
- if(a[i]<b[i])return ;
- }
- return ;
- }
- void _minus(int a[],int b[]){
- for(int i=;i<=a[];i++){
- if(a[i]<b[i]){
- a[i]+=;a[i+]--;
- }
- a[i]-=b[i];
- }
- while(a[a[]]==&&a[]>)//余数的位数
- a[]--;
- }
- int main(){
- scanf("%s%s",s1+,s2+);
- len1=strlen(s1+);
- len2=strlen(s2+);
- for(int i=;i<=len1;i++)a1[i]=s1[len1-i+]-'';
- for(int i=;i<=len2;i++)a2[i]=s2[len2-i+]-'';
- a1[]=len1;a2[]=len2;
- a4[]=len1-len2+;
- for(int i=a4[];i>;i--){
- memset(a3,,sizeof(a3));
- for(int j=;j<=a2[];j++){
- a3[j+i-]=a2[j];//移i位
- }
- a3[]=a2[]+i-;
- while(check(a1,a3)){
- a4[i]++;_minus(a1,a3);
- }
- }
- while(a4[a4[]]==&&a4[]>)//商的位数
- a4[]--;
- for(int i=a4[];i>=;i--){
- printf("%d",a4[i]);
- }
- /*
- 3886218
- 56322
- out:69
- */
- }
[codevs3118]高精度除法<高精度>的更多相关文章
- 中石油-高精度除法-java版
问题 G: [高精度]高精度数除以低精度数I 时间限制: 1 Sec 内存限制: 512 MB提交: 19 解决: 15[提交][状态][讨论版] 题目描述 修罗王聚集了庞大的暗元素以施展隐匿魔法 ...
- 使用java求高精度除法,要求保留N位小数
题目要求是高精度除法,要求保留N位小数(四舍五入),并且当整数部分为0时去除0的显示 import java.math.BigDecimal; import java.util.Scanner; pu ...
- POJ 2325 Persistent Numbers#贪心+高精度除法
(- ̄▽ ̄)-* 这道题涉及高精度除法,模板如下: ]; ];//存储进行高精度除法的数据 bool bignum_div(int x) { ,num=; ;s[i];i++) { num=num*+ ...
- 第三周PTA笔记 回文数+A-B(大数减法)+高精度除法+数楼梯(大数加法)
回文数 对于一个自然数n,若将n的各位数字反向排列所得的数n1与n相等,则称n为回文数,例如2332. 若给定一个N( 2<=N<=16)进制数M(M的长度在一百位以内),如果M不是回文数 ...
- c++ 超大整数除法 高精度除法
c++ 超大整数除法 高精度除法 解题思路 计算a/b,其中a为大整数,b为普通整数,商为c,余数为r. 根据手算除法的规则,上一步的余数记为r,则本次计算的被除数为t=r*10+被除数的本位数值a[ ...
- 【高精度】高精度分数[c++]
[高精度]高精度分数 时间限制: 1 Sec 内存限制: 64 MB 题目描述 "人无远虑,必有近忧"是修罗王一直以来恪守的信条,为了以防万一,他在很久以前就将<魔法宝典&g ...
- 【高精度】高精度数除以低精度数I
问题 G: [高精度]高精度数除以低精度数I 时间限制: 1 Sec 内存限制: 512 MB提交: 173 解决: 71[提交] [状态] [讨论版] [命题人:] 题目描述 修罗王聚集了庞大的 ...
- 【noi 2.6_9288】&【hdu 1133】Buy the Ticket(DP / 排列组合 Catalan+高精度除法)
题意:有m个人有一张50元的纸币,n个人有一张100元的纸币.他们要在一个原始存金为0元的售票处买一张50元的票,问一共有几种方案数. 解法:(学习了他人的推导后~) 1.Catalan数的应用7的变 ...
- 华南理工大学“三七互娱杯”程序设计竞赛(重现赛)( HRY and array 高精度除法模板)
题目链接:https://ac.nowcoder.com/acm/contest/874/D 题目大意:给你两个数列a和b然后对a可以进行排列,对b可以任意排列,问你sigma(a(i)*b(i))的 ...
随机推荐
- 一篇带你看懂Flutter叠加组件Stack
注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Stack Stack组件可以将子组件叠加显示,根据子组件 ...
- Java 八种基本类型和基本类型封装类
1.首先,八种基本数据类型分别是:int.short.float.double.long.boolean.byte.char: 它们的封装类分别是:Integer.Short.Float.Doub ...
- C++泛化双向链表
泛型双向链表 双向链表(doublyLinkedList.h) /******************************************************************* ...
- echarts实现饼图及横向柱状图的绘制
项目中需要绘制饼图,因此简单学习了下echarts的基本使用.head中引入js文件: <script src="/static/frame/echarts/echarts.min.j ...
- ABP开发框架前后端开发系列---(16)ABP框架升级最新版本的经验总结
有一小段时间没有持续升级ABP框架了,最近就因应客户的需要,把ABP框架进行全面的更新,由于我们应用的ABP框架,基础部分还是会使用官方的内容,因此升级的时候需要把官方基础ABP的DLL进行全面的更新 ...
- 前端---css3优化
一.视差滚动(经过优化后的代码) .front::before { content: ''; position: fixed; // 代替background-attachment width: 10 ...
- office一直提示配置进度与图标问题
原来安装了wps office,广告太烦,于是卸载了wps安装Microsoft office 2010,安装完成后每次打开excel文件都要重新安装配置,修改注册表norereg和设置兼容模式都不行 ...
- oracle单机数据库搭建巨详细文档
规划 环境:redhat6.9 安装包:p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip 数据 ...
- ubuntu 安装flask+nginx+gunicorn 待定
第一步 先检查服务器环境 pip python3 mysql redis 能下就下,该升级就升级 第二步 如果你的flask程序在github上 请使用git clone 地址 下载下来(如果是私 ...
- vue控制台报错集锦
1.ERROR in Cannot find module 'node-sass' 经常会出现node-sass没安装好的报错,没事,单独重新安装一下, 解决办法:npm install node-s ...