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;
}
相关推荐
星辰大海的精灵10 分钟前
深入解析 CopyOnWriteArrayList
java·后端·算法
重启的码农26 分钟前
深入fecal实现 (6) 伽罗瓦域 GF(256) 运算
c++·网络协议
重启的码农30 分钟前
深入fecal实现 (2) 编码器 (Encoder)
c++·网络协议
逝雪Yuki36 分钟前
Leetcode——11. 盛最多水的容器
c++·算法·leetcode·双指针
找不到、了40 分钟前
Java排序算法之<希尔排序>
java·算法·排序算法
南清的coding日记41 分钟前
算法详细讲解- 快速排序与归并排序
数据结构·排序算法
小徐不徐说1 小时前
深入理解 Qt 信号与槽机制的底层逻辑
数据库·c++·qt·面试
大梦谁先行1 小时前
Qt写游戏脚本/辅助(仅供参考)
c++·qt·游戏
阳光_你好1 小时前
C++中析构函数为什么需要是虚函数
c++
啊阿狸不会拉杆1 小时前
《Java 程序设计》第 8 章 - Java 常用核心类详解
java·开发语言·python·算法·intellij-idea