写一段快速幂的代码 C++
时间: 2023-03-19 21:22:30 浏览: 88
以下是一个快速幂算法的 C 代码示例:
```
#include <stdio.h>
// 快速幂函数
long long fastPower(long long base, long long exponent) {
long long result = 1;
while (exponent > 0) {
if (exponent % 2 == 1) {
result *= base;
}
base *= base;
exponent /= 2;
}
return result;
}
int main() {
long long base, exponent;
printf("请输入底数:");
scanf("%lld", &base);
printf("请输入指数:");
scanf("%lld", &exponent);
long long result = fastPower(base, exponent);
printf("%lld 的 %lld 次方等于 %lld\n", base, exponent, result);
return 0;
}
```
这个代码实现了一个快速幂算法,可以计算任意底数和指数的幂次。该算法的时间复杂度为 O(log n),比朴素的指数幂算法更高效。
相关问题
写一段快速幂运算 用C++
C语言中可以使用快速幂算法实现快速幂运算。以下是一个快速幂函数的示例代码:
```
#include <stdio.h>
long long quick_pow(int a, int b) {
long long result = 1;
while (b > 0) {
if (b & 1) {
result = result * a;
}
b >>= 1;
a = a * a;
}
return result;
}
int main() {
int a, b;
scanf("%d%d", &a, &b);
printf("%lld\n", quick_pow(a, b));
return 0;
}
```
该代码实现了快速幂算法,每次将幂次 b 除以 2,并将底数 a 乘以自身。该代码对于任意输入的 a 和 b,都能够计算出 a^b 的结果。
写一段C++代码判断n是否是2的幂次方
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int i;
int flag = 0;
for (i = 0; i < n; i++)
{
if (n == (1 << i))
{
flag = 1;
break;
}
}
if (flag == 1)
{
printf("是2的幂次方");
}
else
{
printf("不是2的幂次方");
}
return 0;
}
阅读全文