在做HDOJ2045不容易系列之(3)—— LELE的RPG难题的时候,发现规律为 F(n)+F(n-1)=3*2^(n-1),原本代码如下
#include <stdio.h>
#include <math.h>
_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函数原型为:
参数类型需要用浮点float,将第九行改成
相同的,sqrt的原型也是
double sqrt ( double x );
float sqrt ( float x );
long double sqrt ( long double x );
原文链接:http://blog.csdn.net/lawrencesgj/article/details/7773507