当前位置: 首页 > news >正文

高精度除法

除数与被除数都是大整数

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string a,b;
vector<int>dend,sor;
bool aisbigger(vector<int>&a,vector<int>&b){
	if(a.size()!=b.size())return a.size()>b.size();
	for(int i=0;i<a.size();++i){
		if(a[i]!=b[i])return a[i]>b[i];
	}
	return true;
}
vector<int> sub(vector<int>&a,vector<int>&b){
	vector<int>result=a;
	for(int i=a.size()-1,j=b.size()-1;j>=0;--i,--j){
		if(result[i]<b[j]){
			result[i-1]--;
			result[i]+=10;
	    }
		result[i]=result[i]-b[j];
	}
	while(result.size()>1&&result[0]==0)
		result.erase(result.begin());
	return result;
}
int main(){
	cin>>a>>b;
	for(int i=0;i<a.length();++i)dend.push_back(a[i]-'0');
	for(int i=0;i<b.length();++i)sor.push_back(b[i]-'0');
	vector<int>ans,r;
	for(int i=0;i<a.length();++i){
		r.push_back(dend[i]);
		int d=0;//除得的数
		while(aisbigger(r,sor)){
			r=sub(r,sor);d++;
		}
		ans.push_back(d);
	}
	while(ans.size()>1&&ans[0]==0)
		ans.erase(ans.begin());
	for(int i=0;i<ans.size();++i)
		cout<<ans[i];
	return 0;	
}

相关文章:

  • SPI通信协议
  • uvm sequence
  • zsh安装以及安装配置oh-my-zsh安装zsh-autosuggestionszsh-syntax-highlighting
  • 条件变量与生产者-消费者模型
  • Unix/Linux 系统下的文件权限
  • D3524 PWM控制芯片详解:特性、参数与典型应用
  • arm非对齐访问编译器选项
  • vue(1-45)
  • GitHub美化个人主页3D图表显示配置操作
  • [力扣每日一练]关于MySQL和pandas的正则表达式应用
  • caddy常用配置
  • torchvision中数据集的使用
  • ros2 humble无法识别头文件<rclcpp/rclcpp.hpp>
  • 科技赋能建筑业变革:中建海龙创新引领高质量发展新路径
  • 深度解读:智能体2.0 AI Agent多推演进
  • 第七章:Python中pygame库的使用:开发小游戏
  • 【Java】注解
  • 单店效率优化促毛利增长,雍禾医疗业绩稳步跑
  • 服装零售行业数据分析方案
  • StarRocks 中 CURRENT_TIMESTAMP 和 current_time 分区过滤问题
  • 无锡网站建设服务/西藏自治区seo 标题 关键词优化
  • 企业网站建设多长时间/百度竞价开户费用
  • 专业做婚纱摄影网站/百度发广告需要多少钱
  • 企业管理咨询合同/如何优化关键词
  • 品牌推广怎么做/智推教育seo课程
  • 不懂代码用cms做网站/湖南网站建设平台