1017 A除以B

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	string s;
	vector<char>s1;
	vector<char>ans;
	int b;
	cin>>s>>b;
	if(s.size()==1){
		int k=s[0]-'0';
		if(k>=b){
			cout<<k/b<<" "<<k%b;
		}else{
			cout<<"0 "<<k;
		}
		return 0;
	}
	for(int i=0;i<s.size();i++){
		s1.push_back(s[i]);
	}
	int cnt=0;//保留倒数第二个余数 
	int pre=0;//保留前一个数 
	for(int i=0;i<s.size();i++){
		if(s1[i]-'0'>=b){
			int k=s1[i]-'0';
			k=cnt*10+k;
			cnt=k%b;
			pre=cnt;
			s1[i]=k%b+'0';
			k=k/b;
			ans.push_back(k+'0');
		
		}else{
			int k1=s1[i]-'0';
			//int k2=s1[i+1]-'0';
			k1=pre*10+k1;
			s1[i]=k1%b+'0';
			cnt=k1%b;
			pre=cnt;
			int k3=k1/b;
			ans.push_back(k3+'0');
		}
	}
//		int k1=cnt;
//			int k2=s1[s.size()-1]-'0';
//			k1=k1*10+k2;
//			cnt=k1%b;
//			int k3=k1/b;
//			ans.push_back(k3+'0');
	int r;
	r=cnt;
	int flag=0;
	for(int i=0;i<ans.size();i++){
		if(ans[i]!='0'&&flag==0){
			flag=1;
		}
		if(flag!=0)
		cout<<ans[i];
	}
	cout<<" "<<r;
}
相关推荐
凉茶钱8 分钟前
【C++】动态内存管理完整解析:从内存划分到 new delete 底层原理
c语言·开发语言·c++·内存管理·动态内存
cu1439 分钟前
细谈GM8775C的具体功能和应用
c语言·c++·人工智能·嵌入式硬件
小七在进步10 分钟前
类和对象(五)
java·开发语言·算法
无名猿11 分钟前
std::optional 完全指南:别再用 -1 和 nullptr 表达「没有值」
c++·标准库·现代c++·语法基础
wzdark16 分钟前
算法与数据结构教学的可视化新模式探索4
数据结构
就叫年华吧丶20 分钟前
长文档点目录定位总是不准?一个 content-visibility + 平滑滚动引发的连环坑(Vue3 实战)
前端·javascript·算法·vue
FPGA信号处理27 分钟前
【信号检测与估计】第四节课:非高斯噪声下的 BLUE、极大似然与 EM 算法
人工智能·算法·机器学习
无名猿37 分钟前
nullptr 取代 NULL 和 0:空指针的三种写法和唯一正确解
c++·现代c++·语法基础·踩坑记录
大侠归来41 分钟前
C++ 与 Lua 的协程交互:从原理到实战
c++·lua·交互
无名猿1 小时前
size_t 与 int 混用陷阱:有符号无符号比较与整数提升
c++·标准库·语法基础·踩坑记录