hzCPPOJ

cmath函数

时间限制:  1 s      内存限制:   256 MB
提交:1152     正确:518     分值:34

题目描述

输入四个正整数a,b,c,n(a,b,c均小于200,n<=6) ,求an+ bn+ cn


C++的数学函数中使用pow(a,n)表示可求得 an ……

an  :表示a的n次方,即a的n次幂。

an  :表示有n个a相乘得到的结果。

an  : a称为幂的底数,n称为幂的指数。在扩充的意义下,指数n也可以是分数、负数,也可以是任意实数或复数




输入

一行四个正整数a,b,c,n( 0 < a,b,c < 200,n<=6)


输出

输出an+ bn+ c的结果,格式见样例。

样例

样例输入:
34 56 7 5
样例输出:
S=596184007
样例输入:
1 1 1 1
样例输出:
S=3
样例输入:
8 5 4 6
样例输出:
S=281865

提示

请注意输出问题,浮点数输出的默认长度是7位。



在一些计算题目中,我们常会用到求和、取绝对值以及求三角函数等代码,写出来需要耗费一番功夫。于是,C/C++库中提供了一个包含各种计算函数的头文件——cmath库。

cmath包含了许多数学函数,非常实用

1 、指数与对数函数
double log (double); 以e为底的对数
double log10 (double);以10为底的对数
double pow(double x,double y);计算x的y次幂//不精准
float powf(float x,float y); 功能与pow一致,只是输入与输出皆为单精度浮点数
double exp (double);求取自然数e的幂
double sqrt (double);开平方根没有以任意为底数的对数函数,可以用logx(y)=log(y)/log(x)来代替


2 、取整函数
double ceil (double); 取上整,返回不比x小的最小整数
double floor (double); 取下整,返回不比x大的最大整数,即高斯函数[x]

double round(double x); 返回x的四舍五入值


3 、绝对值

int abs(int i); 处理int类型的取绝对值
double fabs(double i); 处理double类型的取绝对值
float fabsf(float i);处理float类型的取绝对值


4、 三角函数和反三角函数
double sin(double);正弦
double cos(double);余弦
double tan(double);正切
double asin (double); 结果介于[-PI/2,PI/2]
double acos (double); 结果介于[0,PI]
double atan (double); 反正切(主值),结果介于[-PI/2,PI/2]
double atan2 (double,double); 反正切(整圆值),结果介于[-PI,PI]


   using ::abs; //绝对值
   using ::acos; //反余弦
   using ::acosf; //反余弦
   using ::acosl; //反余弦
   using ::asin; //反正弦
   using ::asinf; //反正弦
   using ::asinl; //反正弦
   using ::atan; //反正切
   using ::atan2; //y/x的反正切
   using ::atan2f; //y/x的反正切
   using ::atan2l; //y/x的反正切
   using ::atanf; //反正切
   using ::atanl; //反正切
   using ::ceil; //上取整
   using ::ceilf; //上取整
   using ::ceill; //上取整
   using ::cos; //余弦
   using ::cosf; //余弦
   using ::cosh; //双曲余弦
   using ::coshf; //双曲余弦
   using ::coshl; //双曲余弦
   using ::cosl; //余弦
   using ::exp; //指数值
   using ::expf; //指数值
   using ::expl; //指数值
   using ::fabs; //绝对值
   using ::fabsf; //绝对值
   using ::fabsl; //绝对值
   using ::floor; //下取整
   using ::floorf; //下取整
   using ::floorl; //下取整
   using ::fmod; //求余
   using ::fmodf; //求余
   using ::fmodl; //求余
   using ::frexp; //返回value=x*2n中x的值,n存贮在eptr中
   using ::frexpf; //返回value=x*2n中x的值,n存贮在eptr中
   using ::frexpl; //返回value=x*2n中x的值,n存贮在eptr中
   using ::ldexp; //返回value*2exp的值
   using ::ldexpf; //返回value*2exp的值
   using ::ldexpl; //返回value*2exp的值
   using ::log; //对数
   using ::log10; //对数
   using ::log10f; //对数
   using ::log10l; //对数
   using ::logf; //对数
   using ::logl; //对数
   using ::modf; //将双精度数value分解成尾数和阶
   using ::modff; //将双精度数value分解成尾数和阶
   using ::modfl; //将双精度数value分解成尾数和阶
   using ::pow; //计算幂
   using ::powf; //计算幂
   using ::powl; //计算幂
   using ::sin; //正弦
   using ::sinf; //正弦
   using ::sinh; //双曲正弦
   using ::sinhf; //双曲正弦
   using ::sinhl; //双曲正弦
   using ::sinl; //正弦
   using ::sqrt; //开方
   using ::sqrtf; //开方
   using ::sqrtl; //开方
   using ::tan; //正切
   using ::tanf; //正切
   using ::tanh; //双曲正切
   using ::tanhf; //双曲正切
   using ::tanhl; //双曲正切
   using ::tanl; //正切


提交人

AmberXie

来源/分类