#include<stdio.h>
#include<string.h>
//memset,strcpy,strlen函数头文件
int main(void)
{
char sum[];//用来保存产生的下一个斐波那契数,当然了,是字符串形式
long long m,i,max,s = ;//max用来存放数位较长的个数
char s1[],s2[]; //用来存储斐波那契数列的相邻两个数,并以字符串形式进行存储
int a[],b[];//转存到int数组中
long long n;
scanf("%lld",&n);//输入你想要输出的菲波那切数列的第多少位 strcpy(s1,""); //初始第一项为"1";
strcpy(s2,"");//初始第二项为"1"; for(m=;m<n;m++)//大循环
{
//每一次都需要将a,b数组所有字节置0
memset(a,,sizeof(int)*);
memset(b,,sizeof(int)*); //a[0]用来保存每一次第一个菲波那切数就是s1的长度 ,并将菲波那切数以逆向方式存储到a数组中
a[] = strlen(s1);
for(i=;i<=a[];i++)
{
a[i] = s1[a[] - i] - '';//a[0]-i便是倒序
} //b[0]用来保存每一次第二个菲波那切数就是s2的长度 ,并将菲波那切数以逆向方式存储到b数组中
b[] = strlen(s2);
for(i=; i<=b[]; i++)
{
b[i] = s2[b[] - i] - '';//b[0]-i便是倒序
} //max存放数位较大的
//因为相加是倒序相加,因此需要找到位数长的,并记录个数
max =( a[]>b[]?a[]:b[] ); for(i=;i<=max;i++)
{
//将a[i]和b[i]的值赋给a[i],a[i]可能大于10,或者小于10;
//大于10则要进一位;
//自身变成a[i]%10;
a[i]+=b[i];//此时a[i]可能大于10
a[i+]+=a[i]/;//无论a[i]是不是大于10,都除以10,发给下一位,也就是所谓的进一位
a[i]%=;//无论a[i]是不是大于10,求余10,发给a[i]
} //可能进位导致较长位数+1;
max++; //进位导致0的出现 ,出现多余有效数字
while(a[max] == && max > )
{
max--;
} //将获得的新的斐波那契数以字符串形式发送给一个数组,在通过strcpy函数复制给s2,
for (i = max,s = ;i>=;i--,s++)
{
sum[s] = a[i]+'';//再将数字转化为字符
} strcpy(s1,s2);//将s2复制给s1
strcpy(s2,sum);//将sum数组里面的字符串复制给s2
}
printf("%s",s2);
return ;
}

高精度处理斐波那契序列(C语言)的更多相关文章

  1. HDU 5620 KK's Steel (斐波那契序列)

    KK's Steel 题目链接: http://acm.hust.edu.cn/vjudge/contest/121332#problem/J Description Our lovely KK ha ...

  2. pytho查找斐波那契序列中的值

    ''' 实现斐波那契序列,查找其中第N个数的值 ''' def FeiBSequence(list,N): length=len(list); i=0; while i<length: if N ...

  3. 爬楼梯问题-斐波那契序列的应用.md

    N 阶楼梯,一次可以爬1.2.3...n步,求爬楼梯的种类数 /** * 斐波那契序列 */ public class ClimbingStairs { // Sol 1: 递归 // 递归 公式:F ...

  4. [LeetCode] Split Array into Fibonacci Sequence 分割数组成斐波那契序列

    Given a string S of digits, such as S = "123456579", we can split it into a Fibonacci-like ...

  5. 利用python实现二分法和斐波那契序列

    利用python实现二分法:我的实现思路如下 1.判断要查找的值是否大于最大值,如果大于则直接返回False 2.判断要查找的值是否小于最小值,如果小于则直接返回False 3.如果要查找的值在最大值 ...

  6. 最长斐波那契序列-LeetCode-873

    英文版A sequence X_1, X_2, ..., X_n is fibonacci-like if: - n >= 3- X_i + X_{i+1} = X_{i+2} for all ...

  7. 【严蔚敏】【数据结构题集(C语言版)】1.17 求k阶斐波那契序列的第m项值的函数算法

    已知k阶斐波那契序列的定义为 f(0)=0,f(1)=0,...f(k-2)=0,f(k-1)=1; f(n)=f(n-1)+f(n-2)+...+f(n-k),n=k,k+1,... 试编写求k阶斐 ...

  8. 【剑指offer】斐波那契序列与跳台阶

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/25337983 剑指offer上的第9题,简单题,在九度OJ上測试通过. 主要注意下面几点: ...

  9. [Swift]LeetCode842. 将数组拆分成斐波那契序列 | Split Array into Fibonacci Sequence

    Given a string S of digits, such as S = "123456579", we can split it into a Fibonacci-like ...

随机推荐

  1. WEB一周总结(1)待补充

    1.网页设计作业--小组介绍 图片来自https://weibo.com/hxLMo?sudaref=www.baidu.com&display=0&retcode=6102 2.WE ...

  2. C++ 一般模板友元关系

    //一般模板友元关系 #include "stdafx.h" #include <iostream> using namespace std; template< ...

  3. CountUp.js 数字跳转效果小插件

    CountUp.js  实现数字跳转效果的小插件 //调用方法 const easingFn = function (t, b, c, d) { var ts = (t /= d) * t; var ...

  4. Spring中@Value("${}"))取不到值的几种情况

    https://blog.csdn.net/dh12313012/article/details/84661169 1. spring组件重写构造方法,在构造方法中引用@Value为null 由于sp ...

  5. 吴裕雄--天生自然 PHP开发学习:While 循环

    <html> <body> <?php $i=1; while($i<=5) { echo "The number is " . $i . &q ...

  6. rsync搭建

    服务器: 查看是否安装:rpm -qa rsync 未安装则:yum install -y rsync 添加rsync用户 useradd -s /sbin/nologin -M rsync 编辑/e ...

  7. 201771010123汪慧和《面向对象程序设计Java》第十一周实验总结

    一.理论部分 1.栈 (1)栈是一种特殊的线性表,是一种后进先出的结构.(2)栈是限定仅在表尾进行插入和删除运算的线性表,表尾称为栈顶,表头称为栈底.(3)栈的物理存储可以用顺序存储结构,也可以用链式 ...

  8. idea抛出异常:org.apache.shiro.authc.AuthenticationException

    问题描述 继续在ubuntu下折腾,终于将web项目的所有的东西配置好了,然后运行项目,满怀期待的心情登录系统的时候,突然出现了这个bug,吓得我差点从椅子上跳起来,这两天遇到的bug实在是太多了.. ...

  9. Java 二维数组,排序、切换顺序,查表法二进制十进制,这班查找、排序(冒泡、选择)、遍历,获取最大小值(4)

    Java 二维数组,排序.切换顺序,查表法二进制十进制,折半查找.排序(冒泡.选择).遍历,获取最大小值(4)

  10. 深入分析Java反射(二)-数组和枚举

    前提 Java反射的API在JavaSE1.7的时候已经基本完善,但是本文编写的时候使用的是Oracle JDK11,因为JDK11对于sun包下的源码也上传了,可以直接通过IDE查看对应的源码和进行 ...