Your objective for this question is to develop a program which will generate a fibbonacci number. The fibbonacci function is defined as such: 
f(0) = 0 
f(1) = 1 
f(n) = f(n-1) + f(n-2) 
Your program should be able to handle values of n in the range 0 to 50. 

Input

Each test case consists of one integer n in a single line where 0≤n≤50. The input is terminated by -1.

Output

Print out the answer in a single line for each test case.

Sample Input

3
4
5
-1

Sample Output

2
3
5

Hint

you can use 64bit integer: __int64

// 递归
 #include<stdio.h>

 long fibbonacci(int n)
{
if(n==) return ;
else if(n==) return ;
else return fibbonacci(n-) + fibbonacci(n-);
} int main()
{
int n;
while(scanf("%d", &n), n!=-)
printf("%d\n", fibbonacci(n));
return ;
}

Time Limit Exceeded

// 
__intx
int/long __int64

signed: -2^31 ~ 2^31-1 ~ 2.1*10^9

unsigned:       0 ~ 2^32-1 ~ 4.29*10^9

signed:-2^63 ~ 2^63-1 ~ 9.2*10^18

unsigned:    0 ~ 2^64-1 ~ 1.8*10^19

// signed: scanf("%I64d",&a);    printf("%I64d",a);
  unsigned: scanf("%I64u",&a);    printf("%I64u",a);
// 说明:
  1、int64不能用作为循环变量
  2、int64的操作速度较慢
 #include<stdio.h>

 __int64 fibbonacci(int n)
{
__int64 x1=, x2=, x3=;
int i;
for(i=;i<=n;i++)
{
x3=x1+x2;
x1=x2; x2=x3;
}
if(x3) return x3;
else
{
if(n) return x2;
else return x1;
}
} int main()
{
int n; __int64 i;
while(scanf("%d", &n), n!=-)
{
i=fibbonacci(n);
printf("%I64d\n", i); /* __intxx io格式 */
}
return ;
}

AC

// 从第47个斐波那契数开始,其大小超过int范围;
// 从第48个斐波那契数开始,其大小超过unsigned int范围;
// 从第93个斐波那契数开始,其大小超过__int64范围;
// 从第94个斐波那契数开始,其大小超过unsigned __int64范围

2Q - Fibbonacci Number的更多相关文章

  1. JSU省赛队员选拔赛个人赛1(Coin Change、Fibbonacci Number、Max Num、单词数、无限的路、叠筐)

    JSU省赛队员选拔赛个人赛1 一.题目概述: A.Coin Change(暴力求解.动态规划)     B.Fibbonacci Number(递推求解) C.Max Num(排序.比较) D.单词数 ...

  2. HDU 2070 Fibbonacci Number

    Fibbonacci Number Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  3. HDUJ 2070 Fibbonacci Number

    Fibbonacci Number Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  4. Fibbonacci Number(杭电2070)

    /*Fibbonacci Number Problem Description Your objective for this question is to develop a program whi ...

  5. 杭电2070 Fibbonacci Number

    Fibbonacci Number Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  6. hdoj:2070

    Fibbonacci Number Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  7. 杭电oj2031、2033、2070、2071、2075、2089、2090、2092、2096-2099

    2031  进制转换 #include<stdio.h> #include<string.h> int main(){ int n,i,r,x,j,flag; ]; while ...

  8. [Python] Advanced features

    Slicing 12345 L[:10:2] # [0, 2, 4, 6, 8]L[::5] # 所有数,每5个取一个# [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, ...

  9. HDU100题简要题解(2070~2079)

    HDU2070 Fibbonacci Number 题目链接 Problem Description Your objective for this question is to develop a ...

随机推荐

  1. easyUi onLoadSuccess:、onChange这些事件不能嵌套使用!!!!

    easyUi  onLoadSuccess:.onChange这些事件不能嵌套使用!!!!

  2. asp.net中的reportview报错跟预编有关系

    当报表控件出现: 报表定义无效.详细信息:根级别上的数据无效.行1,位置1. 先检查一下,你的aspx文件是不是变成了这样一句话 这是预编译工具生成的标记文件,不应被删除! 如果这样的话,报表控件是不 ...

  3. java的acm输入输出格式+大数语法

    1.类名称必须采用public class Main方式命名 2.多组输入,读取到文件尾 Scanner scan=new Scanner(System.in); while(scan.hasNext ...

  4. js基础-直接量与变量

    直接量 123 "abc" console.log("234") true false 变量 var x = 123 变量可先声明后赋值 var定义的都是局部变 ...

  5. vue 父向子组件传递数据,子组件向父组件传递数据方式

    父组件向子组件传递数据通过props,子组件引入到父组件中,设置一个值等于父组件的数据,通过:bind将数据传到子组件中,子组件中通过props接收父组件的数据,这样就可以使用父组件的数据了,循环组件 ...

  6. JS-事件对象(鼠标键盘事件)

    一  事件对象 1 需要获取键盘和鼠标的信息的时候,用到事件对象.(e) 例如:document.onclick = function(e){ var  e = e || event;(做兼容) } ...

  7. SAP 000 客户端初始登录

    Solution 在SAP系统DB中删除账号SAP*,SAP系统会自动创建SAP*这个账号,然后初始密码是“PASS”,这样就获得Client 000 SAP*账号. Step by Step 以Or ...

  8. linux安装redis及主从复制、读写分离、哨兵模式

    Redis安装与部署 版本最好选择3.0及以上.以后还可以部署Redis集群. 1.下载: [root@bogon redis-3.0.0]# cd /usr/local [root@bogon lo ...

  9. 6. ZigZag Conversion (字符串的连接)

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  10. 206. Reverse Linked List (List)

    Reverse a singly linked list. /** * Definition for singly-linked list. * struct ListNode { * int val ...