#include <iostream>
#include <math.h>
using namespace std;
//////////////////////////////////////////
// Fib():
// Calculate n-th Fibnacci number without loop or recursion
int Fib(int n)
{
static double r = sqrt(5.0);
static double x1 = (1+r)/2;
double f = 1/r * pow(x1,n) + 0.5;
return (int)f;
}
int main(int argc,char * argv[])
{
// Sum of the first 20 Fibnacci numbers equals to Fib(22)-1
int sum = Fib(22) - 1;
cout << "1+1+2+...+" << Fib(20) << " = " << sum << endl;
return 0;
}
我上次去富士康面试,题目是1+(1+3)+(1+3+5)+……试试这个,这个有难度
__________________________________________
不是想像中那么难吧
//求自然数前N个奇数: 1+(1+3)+(1+3+5)+……的和
int GetSum(int n)
{
int i = 0;
int j = 0;
int sum = 0;
for(i=1,j=0; i<=(2*n-1); i+=2,j++)
sum += (n-j) * (2*j+1);
return sum;
}