1308:【例1.5】高精除-信息学奥赛一本通C++实现
![](/assets/blank.gif)
#include<iostream>
using namespace std;
#include<cstdio>
#include<cstring>#define N 301
string s1,s2;
int a[N],b[N],c[N],temp[N];//把数组1,向右移动destination位到数组b中
void copy_array(int *arr1,int *arr2,int destination)
{for(int i=1;i<=arr1[0];i++)arr2[destination+i]=arr1[i];arr2[0]=arr1[0]+destination;return;
}//比较两数组数组1大于等于数组2,返回1,否则返回0
bool compare_array(int *arr1,int *arr2)
{for(int i=1;i<=arr2[0];i++){if(arr1[i]>arr2[i]) return true;else if(arr1[i]<arr2[i]) return false;}return true;//数组完全相等
}//数组1减数组2,注意最低一位为arr2[0]
void subtraction(int *arr1,int *arr2)
{//从最低一位开始减for(int i=temp[0];i>=1;i--){if(arr1[i]<arr2[i]){arr1[i-1]--;//向前借一位arr1[i]+=10;//当10用}arr1[i]-=arr2[i];}return;
}void print_array(int *arr)
{int index=1;for(;arr[index]==0&&index<arr[0];index++);for(int i=index;i<=arr[0];i++)printf("%d",arr[i]);printf("\n");return;
}int main()
{cin>>s1>>s2;int k=0;//处理前导0while(s1[k]=='0') s1.erase(0,1);while(s2[k]=='0') s2.erase(0,1);a[0]=s1.size();b[0]=s2.size();//正序存放到数组中for(int i=0;i<a[0];i++) a[i+1]=s1[i]-'0';for(int i=0;i<b[0];i++) b[i+1]=s2[i]-'0';c[0]=a[0]-b[0]+1;//计算商的位数for(int i=1;i<=c[0];i++){memset(temp,0,sizeof temp);//b向右移动i-1位到temp中//并tenp[0]记录数的长度copy_array(b,temp,i-1);while(compare_array(a,temp))//比较两数组a>=temp返回真{//除法变减法//a数组减temp数组//注意最高位在a[0]subtraction(a,temp);c[i]++;//每减一次加1}}if(c[0]<1)printf("0\n");else print_array(c);print_array(a);return 0;
}
![](/assets/blank.gif)
1308:【例1.5】高精除-信息学奥赛一本通C++实现相关推荐
- 信息学奥赛一本通 提高篇 第5章 矩阵乘法
例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...
- 1000:入门测试题目 【信息学奥赛一本通(C++版)在线评测系统】
为了更好的阅读体验,建议您移步至我的博客园来阅读此文章. 传送门 「原题」 1000:入门测试题目 时间限制: 1000 ms 内存限制: 32768 KB 提交数: 0 通过数: 0 [题目描述] ...
- 【例1】 0/1背包《信息学奥赛一本通》【解法一】 02
/* [例1] 0/1背包<信息学奥赛一本通>[解法一] 02 http://ybt.ssoier.cn:8088/problem_show.php?pid=1267 */ #includ ...
- 【例8】合唱队形(《信息学奥赛一本通第五版》)
/* [例8]合唱队形(<信息学奥赛一本通第五版>) http://ybt.ssoier.cn:8088/problem_show.php?pid=1264 [问题描述] N位同学站成一排 ...
- 信息学奥赛一本通 2021:【例4.6】最大公约数
[题目链接] ybt 2021:[例4.6]最大公约数 [题目考点] 1. while循环 2. 求最大公约数 辗转相减法 辗转相除法 [解题思路] 解法1:枚举 取较小数字,从该数字的值开始从大到小 ...
- 信息学奥赛一本通(2032:【例4.18】分解质因数)
2032:[例4.18]分解质因数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 582 通过数: 376 [题目描述] 把一个合数分解成若干个质因数乘积 ...
- 信息学奥赛一本通——2062:【例1.3】电影票
2062:[例1.3]电影票 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 57341 通过数: 34230 [题目描述] 已知一位小朋友的电影票价是10 ...
- 信息学奥赛一本通 1278:【例9.22】复制书稿(book) | 洛谷 P1281 书的复制
[题目链接] ybt 1278:[例9.22]复制书稿(book) 洛谷 P1281 书的复制 [题目考点] 1. 动态规划:线性动规 [解题思路] 该题可以抽象为:将由m个数字构成的序列分成k个子段 ...
- 信息学奥赛一本通1267:【例9.11】01背包问题(二维dp与滚动数组优化)
[题目描述] 一个旅行者有一个最多能装 MM 公斤的背包,现在有 nn 件物品,它们的重量分别是W1,W2,...,WnW1,W2,...,Wn,它们的价值分别为C1,C2,...,CnC1,C2,. ...
最新文章
- 空间谱专题09:阵列信号建模方法
- 使用vue的transition完成滑动过渡
- 推荐一个python学习的宝库(github的star数71000+)
- 数据结构与算法一 - 二叉树基础
- C#的static constructor抛了异常会怎么处理?
- SQL存储过程的导入导出
- scrapy Crawl_spider
- 13-Java和Scala中的Future
- JavaScript【面向对象】-静态方法-私有方法-公有方法-特权方法
- WPS2019专业版办公软件安装包+永久授权码!
- 中文语音合成TTS (TensorFlowTTS)免费API资源及DEMO
- Google Analytics API V4(谷歌统计实战)
- word中插入常用几种公式编辑器
- 通过Socket实现群聊的思路
- 高中计算机课程教程,高中信息技术课教学计划
- 全球与中国抗口腔粘膜炎药物市场深度研究分析报告
- 扎拉赞恩 服务器 微信群,魔兽8.0剧透 回归的扎拉赞恩与沃金的骨灰
- 解决ionic 中 $ionicHistory.goBack()无法返回问题
- (二)Tushare Pro教程:上市公司财务数据接口
- 电源硬件设计----线性调压器与LDO
热门文章
- 自信+目标+分解完成=成功的三部曲
- Mina NIO与BIO了解及Telnet简单测试-Getting Started
- 直线检测练习:hough线变换
- API开发平台应用场景和产品研发
- springMVC 优雅的校验参数(@Valid和@Validated)
- FM175XX使用总结
- C语言typedefine用法介绍,typedef与define在用法上的区别
- 怎么关闭文件预读取的服务器,r2如何开启预读和SuperFetch
- Himall商城Web帮助类获得上次请求的url、获得请求的方式、获得请求的主机部分、获取请求的端口号、 获得请求的ip、获得请求的原始url
- 苹果手机群控免越狱手机投屏