Fibonacci数列变例之一
2013-01-30 20:59
155 查看
题目来自昨天看到的一篇博客,在一个变形的Fibonacci数列中,求第N个数。变形之处是,当前两个数之和大于10时,将和拆成两个一位数。比如:
0 2 2 4 6 1 0 1 1 2 3 5 8 1 3
3 4 7 1 1 2 3 5 8 1 3 4 7 1 1
算法很简单,基本逻辑是根据前两个数是否大于10决定之后一个数或两个数,一种例外情况是头两个数都是0。
0 2 2 4 6 1 0 1 1 2 3 5 8 1 3
3 4 7 1 1 2 3 5 8 1 3 4 7 1 1
算法很简单,基本逻辑是根据前两个数是否大于10决定之后一个数或两个数,一种例外情况是头两个数都是0。
int GetSumNum(int a, int b, int n) { if(a<0 || b<0 || n<1) { printf("Invalid input parameter!!!"); return -1; } if(a==0 && b==0) return 0; while(n>2) { int c = a+b; if(c > 9) { a = 1; b = c - 10; n-=2; } else { a=b; b=c; n--; } } if(n==2) return b; else if (n==1) return a; else return -1; }
相关文章推荐
- 用递归法和迭代法分别实现Fibonacci数列
- Fibonacci数列
- fibonacci数列 (递归与非递归)
- 递归求fibonacci数列
- 程序员面试题精选100题(16)-O(logn)求Fibonacci数列
- NYOJ-468 Fibonacci数列(三)【大素数判断】
- 计算fibonacci数列
- nyoj 148 fibonacci数列(二)
- NYOJ 148 fibonacci数列(二)
- C语言学习之 求Fibonacci数列前40项
- 产生Fibonacci数列
- 矩阵快速幂 求Fibonacci数列poj3070
- fibonacci数列的性质
- Js_闭包中的Fibonacci数列
- 入门训练 Fibonacci数列
- Fibonacci数列
- Fibonacci数列的矩阵运算
- Fibonacci数列
- IT公司100题-19-求Fibonacci数列
- 入门训练1_Fibonacci数列