CODE【VS】3118 高精度练习之除法(大数除以大数模板)
来源:互联网 发布:蒙古打到欧洲哪里知乎 编辑:程序博客网 时间:2024/06/07 22:03
题目描述 Description
给出两个正整数A和B,计算A/B整数部分的值。保证A和B的位数不超过500位。
输入描述 Input Description
读入两个用空格隔开的正整数
输出描述 Output Description
输出A/B整数部分的值
样例输入 Sample Input
15 4
样例输出 Sample Output
3
数据范围及提示 Data Size & Hint
两个正整数的位数不超过500位
下面是代码:
#include<iostream>#include<string>using namespace std;bool big(string a,string b,int i){ for(int j=i; j<i+b.length(); j++) { if(a[j]>b[j-i]) return true; if(a[j]<b[j-i]) return false; } return true;}int main(){ string a,b,c; cin>>a>>b; int i,p=0; int lena=a.length(),lenb=b.length(); for(i=0; i<lena; i++) c+='0'; i=0; while(i<=lena-lenb) { if(i>lena-lenb) break; while(big(a,b,i) || (i>0 && a[i-1]>'0')) { for(int j=lenb-1; j>=0; j--) if(a[i+j]>=b[j]) a[i+j]-=b[j]-'0'; else a[i+j-1]--,a[i+j]+=10+'0'-b[j]; c[i+lenb-1]++; } i++; } for(i=0; i<c.length(); i++) { if(c[i]!='0') p=1; if(p) cout<<c[i]; } if(!p) cout<<0; return 0;}
0 0
- CODE【VS】3118 高精度练习之除法(大数除以大数模板)
- 高精度之大数除法
- 高精度除法(大数除法)
- 高精度除法(大数除int型)模板
- 高精度 大数加法 乘法 除法 幂 模板
- 高精度 大数加法 乘法 除法 幂 模板
- 高精度模板(大数)
- 大数,高精度计算---大数除法
- 大数_高精度除法
- 高精度除法(大数相除)
- 大数高精度运算(模板)
- 大数(相加,高精度)模板
- 7、大数,高精度计算---大数除法
- 大数除法模板
- 大数除法模板
- 高精度之高精度除法(高精除以低精)
- 高精度之高精度除法(高精除以高精)
- JAVA大数高精度练习
- python实例方法、静态方法、类方法
- 如何写一个简单的分页
- Java集合之Map
- 点击a标签,返回上一页
- Java
- CODE【VS】3118 高精度练习之除法(大数除以大数模板)
- 链表的动态实现
- 白话空间统计二十三:回归分析番外-ArcGIS中的OLS(二)
- Session
- ubuntu-opencv自动安装脚本
- phpmyadmin管理数据库时的权限问题
- SQL基础语句
- 类的序列化和反序列化
- ubuntu16.04安装anaconda(阿里云下)