记录4
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,m,sum=0;
cin>>n;
while(n--){
cin>>m;
int t=m%10;
m/=10;
sum+=pow(m,t);
}
cout<<sum;
return 0;
}
突破点
原来的 X 为 21²+125³,但现在变成了 212+1253
虽然题目前面的公式花里胡哨一大堆,但是这个例子就解释了题目意思
思路
数位分离,得到原本的数字,然后累加
代码简析
while(n--){
cin>>m;
int t=m%10;
m/=10;
sum+=pow(m,t);
}
%10是取出数字尾巴的数,/10是砍去尾巴的数字
while(n--)来进行循环输入,比for循环的优势在于少些点代码,更简便
n--等价于使用n; n=n-1;这两条语句,先用后加
补充:++i等价于i=i+1; 使用i; 先加后用
注意点:
-
pow的返回值类型:-
pow的返回值类型是double。 -
例如,
pow(2, 3)返回8.0,而不是8。
-
-
隐式类型转换:
-
当将
double类型的结果赋值给int类型的变量时,double类型的结果会被截断为整数类型。 -
例如上面的题解,
sum += pow(m, t);中,pow(m, t)返回一个double类型的值,但sum是int类型,因此double类型的值会被截断为整数。
-
在C/C++中,
pow函数位于math.h或cmath头文件中。函数原型为:
double pow(double x, double y);
pow(x, y):计算x的y次方。
如果指数为小数,
pow会进行开方运算,例如pow(9, 0.5)返回3.0(平方根)。当底数为负数且指数为小数时,结果可能为
NaN(非数字),例如pow(-2, 0.5)。大数运算可能导致溢出,需注意数值范围。
补充
在C++中,
pow和sqrt是标准库<cmath>中提供的数学函数,分别用于计算幂和平方根。以下是一些详细的用法和示例,帮助你更好地理解这两个函数。1.
pow函数
pow函数用于计算一个数的幂。其原型如下:double pow(double base, double exponent);
base:底数。
exponent:指数。返回值:返回
base的exponent次幂的结果。示例1:计算平方
#include <iostream> #include <cmath> using namespace std; int main() { double base = 2.0; double exponent = 2.0; double result = pow(base, exponent); cout << base << " to the power of " << exponent << " is " << result << endl; // 输出:2 to the power of 2 is 4 return 0; }示例2:计算立方
#include <iostream> #include <cmath> using namespace std; int main() { double base = 3.0; double exponent = 3.0; double result = pow(base, exponent); cout << base << " to the power of " << exponent << " is " << result << endl; // 输出:3 to the power of 3 is 27 return 0; }示例3:计算分数次幂
#include <iostream> #include <cmath> using namespace std; int main() { double base = 8.0; double exponent = 1.0 / 3.0; double result = pow(base, exponent); cout << base << " to the power of " << exponent << " is " << result << endl; // 输出:8 to the power of 0.333333 is 2 return 0; }2.
sqrt函数
sqrt函数用于计算一个数的平方根。其原型如下:double sqrt(double x);
x:需要计算平方根的数。返回值:返回
x的平方根。示例1:计算平方根
#include <iostream> #include <cmath> using namespace std; int main() { double number = 16.0; double result = sqrt(number); cout << "The square root of " << number << " is " << result << endl; // 输出:The square root of 16 is 4 return 0; }示例2:计算非完全平方数的平方根
#include <iostream> #include <cmath> using namespace std; int main() { double number = 20.0; double result = sqrt(number); cout << "The square root of " << number << " is " << result << endl; // 输出:The square root of 20 is 4.47214 return 0; }示例3:计算负数的平方根(会返回NaN)
#include <iostream> #include <cmath> using namespace std; int main() { double number = -4.0; double result = sqrt(number); cout << "The square root of " << number << " is " << result << endl; // 输出:The square root of -4 is nan return 0; }注意事项
包含头文件:
确保包含
<cmath>头文件,因为pow和sqrt函数定义在这个头文件中。类型匹配:
pow和sqrt函数的参数和返回值都是double类型。如果需要处理整数,可以显式转换为double。负数的平方根:
sqrt函数不支持负数的平方根,会返回NaN(Not a Number)。总结
pow和sqrt是C++标准库中非常有用的数学函数,分别用于计算幂和平方根。通过这些示例,应该能够更好地理解和使用这两个函数。
1088

被折叠的 条评论
为什么被折叠?



