高精度处理斐波那契序列(C语言)
#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语言)的更多相关文章
- HDU 5620 KK's Steel (斐波那契序列)
KK's Steel 题目链接: http://acm.hust.edu.cn/vjudge/contest/121332#problem/J Description Our lovely KK ha ...
- pytho查找斐波那契序列中的值
''' 实现斐波那契序列,查找其中第N个数的值 ''' def FeiBSequence(list,N): length=len(list); i=0; while i<length: if N ...
- 爬楼梯问题-斐波那契序列的应用.md
N 阶楼梯,一次可以爬1.2.3...n步,求爬楼梯的种类数 /** * 斐波那契序列 */ public class ClimbingStairs { // Sol 1: 递归 // 递归 公式:F ...
- [LeetCode] Split Array into Fibonacci Sequence 分割数组成斐波那契序列
Given a string S of digits, such as S = "123456579", we can split it into a Fibonacci-like ...
- 利用python实现二分法和斐波那契序列
利用python实现二分法:我的实现思路如下 1.判断要查找的值是否大于最大值,如果大于则直接返回False 2.判断要查找的值是否小于最小值,如果小于则直接返回False 3.如果要查找的值在最大值 ...
- 最长斐波那契序列-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 ...
- 【严蔚敏】【数据结构题集(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阶斐 ...
- 【剑指offer】斐波那契序列与跳台阶
转载请注明出处:http://blog.csdn.net/ns_code/article/details/25337983 剑指offer上的第9题,简单题,在九度OJ上測试通过. 主要注意下面几点: ...
- [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 ...
随机推荐
- Java9,8,7中接口的内容
在Java 9+版本中,接口的内容可以有: 1:成员变量其实是常量格式:[public][static][final] 数据类型 常量名称 =数据值:注意: 常量必须进行赋值,而且一旦赋值不能改变 常 ...
- gogs 小团队使用
最近小团队开始使用 gogs 来保存手头的项目.具体的使用流程如下: 由 root 用户新建 organization, 比如说建立 hardware,然后把团队的 技术负责人拉到 owners 这个 ...
- 用Maven整合SSM项目实例
转自https://www.cnblogs.com/hujianblogs/p/8526737.html 本人在学习Maven之余,为了深入了解Maven的用法,决定创建一个SSM整合实例.项目是自 ...
- react-native-tab-view 导航栏切换插件讲解
首先引入插件 yarn add react-native-tab-view 如果用的原生环境要安装另外几个插件 yarn add react-native-reanimated react-nativ ...
- css代码实现列表等宽
实现上面的手机页面,我们会遇到一个自适应的问题,但是手机页面的屏幕大小不一致,自适应的问题不是百分比可以好好解决的,我采用下面的布局:display:flex; <!DOCTYPE html&g ...
- 51nod 1392:装盒子 匈牙利+贪心
1392 装盒子 基准时间限制:1 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 收藏 关注 有n个长方形盒子,第i个长度为Li,宽度为Wi,我们需要把他们套放.注意一个盒子 ...
- markdown使用介绍
一.标题,前面加#,加一个 一级标题,两个二级标题,以此类推. 一级标题 二级标题 三级标题
- JSP编码问题解决方法
最近再看JSP相关知识,被中文乱码搞的很头大.找了好多方法终于找到了一个简单可行的方案. JSP中request和response操作默认编码为"ISO-8859-1",这是中文乱 ...
- JAVAEE 和项目开发(第一课:浏览器和服务器的交互模式和HTTP协议的概念和介绍)
互联网的发展非常迅速,但是万变不离其宗.学习 web 开发,需要我们对互 联的交互机制有一定的了解.为了更好的理解并掌握 Servlet,在正式学习 Servlet之前需要对 web 开发中客户端和服 ...
- kali由wifi握手包破解密码&&gnuplot使用
1.kali密码破解(WiFi握手包) cap包密码破解,aircrack-ng wifi.cap -w psw.txt(你的字典文件) 2.画图工具gnuplot 1.txt中保存的是坐标,形式为: ...