c++中pow 与sqrt函数使用指南



  分类:
c++(5)    菜鸟之伤(1) 

在做HDOJ2045不容易系列之(3)—— LELE的RPG难题的时候,发现规律为 F(n)+F(n-1)=3*2^(n-1),原本代码如下

[cpp]  view plain  copy
  1. #include   
  2. #include   
  3. _int64 a[51]={0};  
  4. void set()  
  5. {  
  6.     a[1]=3;  
  7.     a[2]=6;  
  8.     for(int i=3; i<51; i++){  
  9.         a[i]=3*_int64(pow(2,i-1))-a[i-1];  
  10.     }  
  11.   
  12. }  
  13. int main()  
  14. {  
  15.     int n;  
  16.     set();  
  17.     while(scanf("%d",&n)!=EOF)  
  18.        printf("%I64d\n",a[n]);  
  19. }  

结果一直是wa,查阅http://www.cplusplus.com/reference/clibrary/cmath/pow/ c++函数标准用法后发现pow函数原型为:

[cpp]  view plain  copy
  1.      double pow (      double base,      double exponent );  
  2. long double pow ( long double base, long double exponent );  
  3.       float pow (       float base,       float exponent );  
  4.      double pow (      double base,         int exponent );  
  5. long double pow ( long double base,         int exponent );  

参数类型需要用浮点float,将第九行改成

[cpp]  view plain  copy
  1. a[i]=3*_int64(pow(2.0,i-1))-a[i-1];  
后,终于变成ac了,以后使用pow函数时需要有所注意

 

相同的,sqrt的原型也是

[cpp]  view plain  copy
  1.     double sqrt (      double x );  
  2.       float sqrt (       float x );  
  3. long double sqrt ( long double x );  

在做HDOJ2045不容易系列之(3)—— LELE的RPG难题的时候,发现规律为 F(n)+F(n-1)=3*2^(n-1),原本代码如下[cpp] view plain copy#include #include _int64 a[51]={0}; void set() { a[1]=3; a[2]=6; for(int i=3; i<51; i++){ a[i]=3*_int64(pow(2,i-1))-a[i-1]; } } int main() { int n; set(); while(scanf("%d",&n)!=EOF) printf("%I64d\n",a[n]); } 结果一直是wa,查阅http://www.cplusplus.com/reference/clibrary/cmath/pow/ c++函数标准用法后发现pow函数原型为:[cpp] view plain copy double pow ( double base, double exponent ); long double pow ( long double base, long double exponent ); float pow ( float base, float exponent ); double pow ( double base, int exponent ); long double pow ( long double base, int exponent ); 参数类型需要用浮点float,将第九行改成[cpp] view plain copya[i]=3*_int64(pow(2.0,i-1))-a[i-1]; 后,终于变成ac了,以后使用pow函数时需要有所注意 相同的,sqrt的原型也是[cpp] view plain copy double sqrt ( double x ); float sqrt ( float x ); long double sqrt ( long double x );

你可能感兴趣的:(c++中pow 与sqrt函数使用指南)