使用【C++】写【给定一个长度为n的大整数p,给定一个整数q。请你求出p整除q的商和余数】的代码
时间: 2024-09-22 21:03:20 浏览: 32
找出第一个可被给定数字n整除的数字k(扩展方法)
在 C++ 中,你可以使用长整型(`long long int`)和取模运算符 `%` 来计算大整数 p 整除小整数 q 的商和余数。以下是一个简单的示例:
```cpp
#include <iostream>
// 函数计算商和余数
std::pair<int, int> divideWithRemainder(long long int p, int q) {
// 商存储在 first 元素,余数存储在 second 元素
std::pair<int, int> result;
if (q == 0) {
throw std::invalid_argument("Divisor cannot be zero");
}
result.first = p / q; // 商
result.second = p % q; // 余数
return result;
}
int main() {
long long int p;
int q;
// 获取用户输入
std::cout << "Enter the large number p: ";
std::cin >> p;
std::cout << "Enter the divisor q: ";
std::cin >> q;
try {
auto division_result = divideWithRemainder(p, q);
std::cout << "Quotient: " << division_result.first << ", Remainder: " << division_result.second << std::endl;
} catch (const std::invalid_argument& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
```
在这个代码里,我们定义了一个 `divideWithRemainder` 函数,接受两个参数 p 和 q。如果 q 为零,我们抛出一个异常。然后分别计算商和余数,并返回一个包含这两个值的 pair。
在主函数中,我们获取用户的输入,调用这个函数,然后打印出结果或处理可能的异常。
阅读全文