P8813 [CSP-J 2022] 乘方
记录25
#include <bits/stdc++.h>
using namespace std;
int main() {int a,b;long long ans=1;cin>>a>>b;if(a==1){cout<<1;return 0;}bool flag=1;for(int i=1;i<=b;i++){ans*=a;if(ans>1000000000){flag=0;break;}}if(flag) cout<<ans;else cout<<-1;return 0;
}
突破口
即 b 个 a 相乘的值,例如 23 即为 3 个 2 相乘,结果为 2×2×2=8。
- 在
的值超过
时,输出一个
-1进行警示,否则就输出正确的的值
思路
一个简单的几次方问题,依次乘起来,然后进行对比,超过就跳出
代码简析
#include <bits/stdc++.h>
using namespace std;
int main() {int a,b;long long ans=1;cin>>a>>b;if(a==1){cout<<1;return 0;}......
}
特殊判断下1的次方问题,因为无论1的几次方结果都是1,防止TLE
#include <bits/stdc++.h>
using namespace std;
int main() {...bool flag=1;for(int i=1;i<=b;i++){ans*=a;if(ans>1000000000){flag=0;break;}}if(flag) cout<<ans;else cout<<-1;return 0;
}
设置一个flag,进行一个判断,在超出目标值的时候终止输出
补充
1.
pow()函数1.1 定义
pow()函数用于计算一个数的幂。它定义在<cmath>头文件中。1.2 语法
double pow(double base, double exponent);1.3 参数
base:底数,可以是任何实数。
exponent:指数,可以是任何实数。1.4 返回值
返回值是
base的exponent次幂的结果,类型为double。1.5 示例代码
示例1:计算整数的幂
#include <iostream> #include <cmath> // 包含 pow 函数 using namespace std;int main() {double base = 2.0;double exponent = 3.0;double result = pow(base, exponent);cout << base << " to the power of " << exponent << " is " << result << endl;return 0; }输出结果
2 to the power of 3 is 8示例2:计算浮点数的幂
#include <iostream> #include <cmath> // 包含 pow 函数 using namespace std;int main() {double base = 2.5;double exponent = 2.0;double result = pow(base, exponent);cout << base << " to the power of " << exponent << " is " << result << endl;return 0; }输出结果
2.5 to the power of 2 is 6.25示例3:计算负指数
#include <iostream> #include <cmath> // 包含 pow 函数 using namespace std;int main() {double base = 2.0;double exponent = -3.0;double result = pow(base, exponent);cout << base << " to the power of " << exponent << " is " << result << endl;return 0; }输出结果
2 to the power of -3 is 0.1251.6 注意事项
参数类型:
pow函数的参数和返回值都是double类型。如果需要计算整数的幂,可以将整数转换为double。负指数:
pow函数可以处理负指数,返回值是底数的倒数的指数次幂。零指数:任何非零数的零次幂都是 1。
零底数:零的任何正指数都是零,但零的零次幂和零的负指数是未定义的,可能会导致运行时错误。
2.
sqrt()函数2.1 定义
sqrt()函数用于计算一个数的平方根。它定义在<cmath>头文件中。2.2 语法
double sqrt(double num);2.3 参数
num:需要计算平方根的数,必须是非负数。2.4 返回值
返回值是
num的平方根,类型为double。2.5 示例代码
示例1:计算整数的平方根
#include <iostream> #include <cmath> // 包含 sqrt 函数 using namespace std;int main() {double num = 16.0;double result = sqrt(num);cout << "The square root of " << num << " is " << result << endl;return 0; }输出结果
The square root of 16 is 4示例2:计算浮点数的平方根
#include <iostream> #include <cmath> // 包含 sqrt 函数 using namespace std;int main() {double num = 25.5;double result = sqrt(num);cout << "The square root of " << num << " is " << result << endl;return 0; }输出结果
The square root of 25.5 is 5.0497524691810392.6 注意事项
参数类型:
sqrt函数的参数和返回值都是double类型。如果需要计算整数的平方根,可以将整数转换为double。非负数:
sqrt函数的参数必须是非负数,否则会引发运行时错误。精度问题:由于
sqrt函数返回的是double类型,结果可能会有小数部分。总结
pow函数:用于计算一个数的幂,接受两个double类型的参数,返回一个double类型的结果。
sqrt函数:用于计算一个数的平方根,接受一个double类型的参数,返回一个double类型的结果。
