1308:【例1.5】高精除

2024-01-19 00:12
文章标签 1.5 高精除 1308

本文主要是介绍1308:【例1.5】高精除,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C++代码示例如下

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
string sub(string s, string st2) {vector<int> A, B, C;for (int i = s.size() - 1; ~i; i--) A.push_back(s[i] - '0');for (int i = st2.size() - 1; ~i; i--) B.push_back(st2[i] - '0');int t, la = A.size(), lb = B.size();for (int i = 0; i < la; i++) {t = A[i];if (i < lb) t -= B[i];if (t < 0) t += 10, A[i + 1]--;C.push_back(t % 10);}string str;while (C.size() > 1 && !C.back()) C.pop_back();for (int i = C.size() - 1; ~i; i--) str += C[i] + '0';return str;
}
bool cmp(string s, string st2) {if (s.size() != st2.size())return s.size() > st2.size();for (int i = 0; i < s.size(); i++) {if (s[i] != st2[i])return s[i] > st2[i];}return true;
}
string div(string st1, string st2, vector<int>& C) {string s;for (int i = 0; i < st1.size(); i++) {s += st1[i];//s>st2 -> trueint cnt = 0;while (cmp(s, st2) && cnt < 10) {s = sub(s, st2);cnt++;}C.push_back(cnt);}reverse(C.begin(), C.end());while (C.size() > 1 && !C.back()) C.pop_back();return s;
}
int main() {string st1, st2, st;vector<int> C;cin >> st1 >> st2;st = div(st1, st2, C);for (int i = C.size() - 1; ~i; i--) cout << C[i];cout << '\n' << st;return 0;
}

这篇关于1308:【例1.5】高精除的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/620713

相关文章

Java语言的Netty框架+云快充协议1.5+充电桩系统+新能源汽车充电桩系统源码

介绍 云快充协议+云快充1.5协议+云快充1.6+云快充协议开源代码+云快充底层协议+云快充桩直连+桩直连协议+充电桩协议+云快充源码 软件架构 1、提供云快充底层桩直连协议,版本为云快充1.5,对于没有对接过充电桩系统的开发者尤为合适; 2、包含:启动充电、结束充电、充电中实时数据获取、报文解析、Netty通讯框架、包解析工具、调试器模拟器软件等; 源码合作 提供完整云快充协议源代码

应届生入职练手习题-蒙特卡洛算法(1.5H)

应届生入职练手习题 [编辑] 模拟射击,根据命中概率来求PI 要求:假设有一个半径为1000的圆形靶子(具体单位没有意义,不用写),我们随意对其进行射击,那么,统计所有落在圆形外接正方形中的弹着点,可以很容易得知:命中这个圆形靶子的概率是圆形的面积与外接方形面积的比 目的:检验编程风格和实现效率 要解这个题目就得有对蒙特卡洛算法的了解,原理如下 在数值积分法中,利用求单位圆的1/4的面积

USACO Section 1.5 Checker Challenge

题意: N皇后问题  输出  字典序最小的3种解法 和 解的数量 思路: dfs去放皇后判断和前面的皇后是否冲突 题目时间卡的超级很近!!  简单的搜索一定跪  能剪的地方要拼命剪枝!! 列举我的剪枝: 1.直接按字典序搜索  最先搜到的3个解保证字典序最小  直接输出 2.通过上几行皇后的放法  求出现在这行有几个位置能放皇后  之后进行搜索(这是关键!!  千万不要先搜位置

USACO Section 1.5 Prime Palindromes

题意: 输入a和b  求 a和b之间所有既是素数同时又有回文性质的数  从小到大输出 思路: 如果枚举a到b之间所有的数再判断素数和回文那么复杂度会比O(n)还大  本题O(n)都会跪 因此思路转到能否 先得到所有素数再判断回文 或者 先得到所有回文的数在判断素数 本题我的做法是后者  说下原因 本题b最大为10^8  因此构造回文的数字可以枚举1~10000中的数字再对数字翻折

Source-code-of-charging-云快充协议1.5+互联互通协议+新能源汽车充电桩系统

介绍 云快充协议+云快充1.5协议+云快充协议开源代码+云快充底层协议+云快充桩直连+桩直连协议+充电桩系统桩直连协议 软件架构 1、提供云快充底层桩直连协议,版本为云快充1.5,对于没有对接过充电桩系统的开发者尤为合适; 2、包含:启动充电、结束充电、充电中实时数据获取、报文解析、Netty通讯框架、包解析工具、调试器模拟器软件等; 源码合作 提供完整源代码,自己可以对接充电桩进行测

1.5编程基础之循环控制45:金币

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。 你需要编写一个程序,确定从第一天开始的给定天数

JDK 1.5 新特性之枚举,举例说明

对于比较稳定的值集合,Java 提供了枚举来定义,简单举例如下: package com.jalor;public class HomeWork {enum Weeks {MON() {@Overridepublic String toString() {return "星期一";}@Overridepublic String getName() {return "星期一";}},TUE {@O

java中,HashMap为什么每次扩容的倍数是2,而不是1.5或者2.5?

本文为转载文章,部分位置加入了个人对原文的理解 原文:https://www.zhihu.com/question/422840340/answer/1494603694 来源:知乎   一、前言二、HashCode为什么使用31作为乘数 1. 固定乘积31在这用到了2. 来自stackoverflow的回答3. Hash值碰撞概率统计4. Hash值散列分布   三、HashMap 数据

1.5.1、输入输出技术

在UNIX操作系统中,把输入/输出设备看作是()。 A 普通文件 B 目录文件 C 索引文件 D特殊文件 正确答案是D 解析 本题考查的是UNIX操作系统中设备管理的基本概念。 在UNIX操作系统中,把输入/输出设备看作是特殊文件。在UNIX系统中包括两类设备:块设备和字符设备。设备特殊文件有一个索引节点,在文件系统目录中占据一个节点, 但其索引节点上的文件类型与其他文件不同, 是“块”或者是

SQL语句大全,所有的SQL都在这里(1.5万字长文)

SQL语句大全,所有的SQL都在这里 本文转摘自微信公众号Python数据科学,仅供学习备份用 https://mp.weixin.qq.com/s/6j-bxhxoU7SKl4LqSDRvyQ 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server —