c++ 指数运算
时间: 2023-07-01 22:07:50 浏览: 1293
在 C++ 中,可以使用 `pow()` 函数进行指数运算。该函数定义在 `cmath` 头文件中,其语法如下:
```c++
#include <cmath>
double pow(double base, double exponent);
```
其中,`base` 表示底数,`exponent` 表示指数。该函数返回 `base` 的 `exponent` 次方。
例如,要计算 2 的 3 次方,可以使用以下代码:
```c++
#include <iostream>
#include <cmath>
int main() {
double result = pow(2, 3);
std::cout << "2 ^ 3 = " << result << std::endl;
return 0;
}
```
输出结果为:
```
2 ^ 3 = 8
```
需要注意的是,`pow()` 函数返回的是一个 `double` 类型的浮点数,如果需要得到整数结果,需要进行类型转换。
相关问题
快速取模指数算法c++
以下是快速幂取模算法的 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
int fast_power(int a, int b, int m) {
int res = 1;
while (b > 0) {
if (b & 1) {
res = (res * a) % m;
}
a = (a * a) % m;
b >>= 1;
}
return res;
}
int main() {
int a = 3, b = 7, m = 5;
int ans = fast_power(a, b, m);
cout << a << "^" << b << " mod " << m << " = " << ans << endl;
return 0;
}
```
其中,`fast_power` 函数接收三个参数 `a`, `b`, `m`,分别表示底数、指数和模数。在函数内部,使用了位运算来快速计算幂次,同时每次计算后都对模数取余,来保证计算结果不会溢出。最后返回计算结果。
在上述代码中,对于 `a=3`, `b=7`, `m=5` 的输入,输出为 `3^7 mod 5 = 3`。
c++一元多项式加法运算代码
以下是C++一元多项式加法运算的代码,使用线性链表存储多项式:
```c++
#include <iostream>
using namespace std;
struct PolyNode {
int coef; // 系数
int expn; // 指数
PolyNode* next; // 指向下一个节点的指针
};
typedef PolyNode* Polynomial; // 多项式类型定义
// 创建多项式
void CreatePolyn(Polynomial& P, int m) {
P = new PolyNode;
P->next = NULL;
PolyNode* rear = P;
for (int i = 0; i < m; i++) {
PolyNode* temp = new PolyNode;
cin >> temp->coef >> temp->expn;
temp->next = NULL;
rear->next = temp;
rear = temp;
}
}
// 多项式相加
void AddPolyn(Polynomial& Pa, Polynomial& Pb) {
PolyNode* p = Pa->next;
PolyNode* q = Pb->next;
PolyNode* r = Pa;
while (p && q) {
if (p->expn < q->expn) {
r->next = p;
r = p;
p = p->next;
}
else if (p->expn > q->expn) {
r->next = q;
r = q;
q = q->next;
}
else {
p->coef += q->coef;
if (p->coef != 0) {
r->next = p;
r = p;
}
else {
PolyNode* temp = p;
p = p->next;
delete temp;
}
q = q->next;
}
}
r->next = p ? p : q;
delete Pb;
}
// 输出多项式
void PrintPolyn(Polynomial P) {
PolyNode* p = P->next;
while (p) {
cout << p->coef << "x^" << p->expn;
if (p->next) {
cout << " + ";
}
p = p->next;
}
cout << endl;
}
int main() {
Polynomial Pa, Pb, Pc;
int m, n;
cout << "请输入多项式Pa的项数:";
cin >> m;
cout << "请依次输入Pa的系数和指数:";
CreatePolyn(Pa, m);
cout << "请输入多项式Pb的项数:";
cin >> n;
cout << "请依次输入Pb的系数和指数:";
CreatePolyn(Pb, n);
AddPolyn(Pa, Pb);
cout << "Pa + Pb = ";
PrintPolyn(Pa);
return 0;
}
```