高精度除以高精度,换行输出它们的商和余数。 c++ 要加using namespace std; 不要注释


```cpp #include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; // 比较两个大整数的大小 bool cmp(const string& a, const string& b) { if (a.length() != b.length()) return a.length() < b.length(); return a < b; } // 大整数减法 string subtract(string a, string b) { if (a == b) return "0"; if (cmp(a, b)) swap(a, b); string res; int borrow = 0; int i = a.length() - 1, j = b.length() - 1; while (i >= 0 || j >= 0 || borrow) { int x = i >= 0 ? a[i--] - '0' : 0; int y = j >= 0 ? b[j--] - '0' : 0; int diff = x - y - borrow; if (diff < 0) { diff += 10; borrow = 1; } else { borrow = 0; } res.push_back(diff + '0'); } while (res.back() == '0') res.pop_back(); reverse(res.begin(), res.end()); return res; } // 大整数高精度除法 pair<string, string> divide(string dividend, string divisor) { if (divisor == "0") throw invalid_argument("Division by zero"); if (cmp(dividend, divisor)) return {"0", dividend}; string quotient; string remainder; for (int i = 0; i < dividend.length(); i++) { remainder += dividend[i]; int count = 0; while (!cmp(remainder, divisor)) { remainder = subtract(remainder, divisor); count++; } quotient += to_string(count); } // 去除商前面的前导零 int start = 0; while (start < quotient.length() - 1 && quotient[start] == '0') start++; quotient = quotient.substr(start); return {quotient, remainder}; } int main() { string dividend, divisor; cin >> dividend >> divisor; auto result = divide(dividend, divisor); cout << result.first << endl; cout << result.second << endl; return 0; } ``` [2025-09-20 10:08:42 | AI问答 | 579点数解答]
- 对于一元二次方程 $$ax^2 + bx + c = 0,解可以分为很多情况。若该方程有两个不相等实根,首先输出1,换行,然后从小到大输出两个实根,换行;若该方程有两个相等实根,首先输出2,换行,然后输出这个这个实根,换行;若该方程有一对共轭复根,输出3,换行;若该方程无解,输出4,换行;若该方程有无穷个解,输出5,换行;若该方程只有一个根,首先输出6,换行,然后输出这个跟,换行;要求使用 c++ class 编写程序。可以创建如下 class #include <iostream> #include <cmath> using namespace std; class Equation{ private: int _a, _b, _c; public: Equation(int a, int b, int c){ } void solve(){ } }; int main(){ int a, b, c; cin >> a >> b >> c; Equation tmp(a, b, c); tmp.solve()(481点数解答 | 2025-03-07 12:49:26)120
- using communication_protocols; using FTS_F02391A; using NLog; using ScottPlot.Plottable; using Sunny.UI; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace 窗体界面设计 { public partial class FormHome : UIPage { private readonly DataLogger Log1;//波形图数据记录器 bool bViewSlide = false(562点数解答 | 2025-07-09 16:57:56)89
- using system; using system.collections.generic; using system.linq; using system.text; using system.threading.tasks; namespace teachingmanagementsystem { class program { static void main(string[] args) { console.writeline("欢迎使用简易教学管理系统"); // 创建课程列表 list<course> courses = new list<course> { new course("数学"), new course("英语"), new course("物理") }; // 创建学生(419点数解答 | 2024-10-24 17:49:32)168
- #include <random> #include <ctime> using namespace std; #include <opencv2\\opencv.hpp> #include <opencv2\\features2d.hpp> using namespace cv; vector<point2f> pts; // 代码生成的点 const point2f center(200, 200); // 圆心 const float std_r = 100; // 标准半径 // 从 [0, 360) 生成圆周上的点, 都是利用 pt_start 旋转, 再加上一点随机偏移 for (int i = 0; i < 360; i += 8) { default_random_engine e(time(nullptr) + rand()); // 随机 engine uniform_real_distribution<float> u(-8.0f, 8.0f); const float r = std_r + u(e); // 半径 + 误差(29点数解答 | 2024-11-06 23:40:42)169
- #include<iostream> using namespace std; int a[305],b[305],c[305]; string a1,b2; int la,lb,lc; int main(){ cin>>a1>>b1; la=a1.size(); lb=b1.size(); for(int i=0;i<la;i++){ a[la-i]=a1[i]-'0'; } for(int i=0;i<lb;i++){ b[lb-i]=b1[i]-'0'; } lc=la+lb+1; for(int i=lc;i>=1;i--){ } } c++ 要加using namespace std; 不要注释 改成高精度减法 (616点数解答 | 2025-09-20 10:52:09)15
- #include<iostream> using namespace std; int a[305],b[305],c[305]; string a1,b2; int la,lb,lc; int main(){ cin>>a1>>b1; la=a1.size(); lb=b1.size(); for(int i=0;i<la;i++){ a[la-i]=a1[i]-'0'; } for(int i=0;i<lb;i++){ b[lb-i]=b1[i]-'0'; } lc=la+lb+1; for(int i=lc;i>=1;i--){ } } 改成高精度除法 c++ 要加using namespace std; 不要注释(719点数解答 | 2025-09-20 10:54:17)13
- #include using namespace std; int a[305],b[305],c[305]; string a1,b2; int la,lb,lc; int main(){ cin>>a1>>b1; la=a1.size(); lb=b1.size(); for(int i=0;i=1;i--){ } } 改成高精度除法并换行输出余数 c++ 要加using namespace std; 不要注释(896点数解答 | 2025-09-20 10:55:46)18
- #include <iostream> #include <vector> #include <algorithm> #include <qcoreapplication> int main(int argc, char *argv[]) { qcoreapplication a(argc, argv); int minsize, maxsize, n; std::cin >> minsize >> maxsize; std::cin >> n; std::vector<int> fishsize(n); for (int i = 0; i < n; ++i) { std::cin >> fishsize[i]; } std::sort(fishsize.begin(), fishsize.end()); int safecount = 0; for (int size = minsize; size <= maxsize; ++size) { bool issaf(123点数解答 | 2024-12-01 23:56:16)157
- 编辑距离 内存限制: 256 Mb时间限制: 1000 ms 题目描述 给定两个字符串 s s 与 t t,请计算 s s 到 t t 的编辑距离。所谓编辑距离,就是最少进行多少步修改可以将 s s 变成 t t,每次修改操作可以从以下操作选择一种: 插入一个字符 删除一个字符 替换一个字符 编辑距离是一个很重要的概念,比如: 微信公众号有个规定:已经发表的文章,只能修改 20 20 个字。所以公众号的运营人员需要仔细计算新旧文章的编辑距离。 DNA 是由 actg 四个字母组成的字符串,编辑距离可以规划编辑 DNA 的最佳方案。 输入格式 第一行:一个字符串 s s,由小写英文字符组成 第二行:一个字符串 t t,由小写英文字符组成 输出格式 单个整数:表示两个字符串的编辑距离 数据范围 1 ≤ ∣ s ∣ ≤ 2000 1≤∣s∣≤2000 1 ≤ ∣ t ∣ ≤ 2000 1≤∣t∣≤2000 样例数据 输入: atcg tcga 输出: 2 说明: 删除第一个a,然后在字符串尾部再加一个a 输入: abcdefg gfedcba 输出: 6 用C++写,普通写法,简单一点,不要(547点数解答 | 2025-08-22 15:49:32)69
- 编辑距离 内存限制: 256 Mb时间限制: 1000 ms 题目描述 给定两个字符串 s s 与 t t,请计算 s s 到 t t 的编辑距离。所谓编辑距离,就是最少进行多少步修改可以将 s s 变成 t t,每次修改操作可以从以下操作选择一种: 插入一个字符 删除一个字符 替换一个字符 编辑距离是一个很重要的概念,比如: 微信公众号有个规定:已经发表的文章,只能修改 20 20 个字。所以公众号的运营人员需要仔细计算新旧文章的编辑距离。 DNA 是由 actg 四个字母组成的字符串,编辑距离可以规划编辑 DNA 的最佳方案。 输入格式 第一行:一个字符串 s s,由小写英文字符组成 第二行:一个字符串 t t,由小写英文字符组成 输出格式 单个整数:表示两个字符串的编辑距离 数据范围 1 ≤ ∣ s ∣ ≤ 2000 1≤∣s∣≤2000 1 ≤ ∣ t ∣ ≤ 2000 1≤∣t∣≤2000 样例数据 输入: atcg tcga 输出: 2 说明: 删除第一个a,然后在字符串尾部再加一个a 输入: abcdefg gfedcba 输出: 6 用C++写,普通写法,简单一点,不要(571点数解答 | 2025-08-22 15:51:59)81
- 修改代码#include <iostream> #include <string> #include <unordered_map> #include <ctime> #include <openssl/sha.h> #include <openssl/aes.h> #include <openssl/rand.h> #include <io.h> #include<process.h> #include <winsock2.h> // 处理可能未定义的socklen_t类型 #ifndef socklen_t typedef int socklen_t; #endif #define port 8080 #define otp_valid_time 120 // otp有效时间为2分钟 // 用户结构体 struct user { std::string username; std::string hashed_password; std::string otp; time_t otp_time; }; // 存储用户的哈希表 std::uno(465点数解答 | 2024-11-23 20:41:37)152
- 任务描述 本关任务:设计一个算法,根据二叉树的先序遍历序列创建二叉树,平台会输入创建好的二叉树的中序遍历序列 编程要求 输入 二叉树的先序遍历序列,其中,叶子结点的左右空子树用#表示 输出 该二叉树的中序遍历序列#include<iostream> using namespace std; typedef struct bitnode { char data; struct bitnode *lchild,*rchild; }bitnode,*bitree; void createbitree(bitree &t) { //根据键盘输入,创建二叉树,在此处填入代码 //先序创建二叉树 }全部代码都在void createbitree(bitree &t)中实现,无需定义其他方法(175点数解答 | 2024-11-29 10:43:09)273