zoj1828
来源:互联网 发布:linux 创建u盘启动盘 编辑:程序博客网 时间:2024/06/05 19:15
题目大意:
输出第N个Fibonacci数列
解题思路:
大数计算,采用打表的方法,把满足题目数量的Fibonacci数先保存下来,然后取出就可以了
代码如下:
#include <stdio.h>#include <string.h>#include <stdlib.h>char ad[4801][1100];void add(char a[],char b[],char back[]){ int i,j,k,up,x,y,z,l; char *c; if (strlen(a)>strlen(b)) l=strlen(a)+2; else l=strlen(b)+2; c=(char *) malloc(l*sizeof(char)); i=strlen(a)-1; j=strlen(b)-1; k=0;up=0; while(i>=0||j>=0) { if(i<0) x='0'; else x=a[i]; if(j<0) y='0'; else y=b[j]; z=x-'0'+y-'0'; if(up) z+=1; if(z>9) {up=1;z%=10;} else up=0; c[k++]=z+'0'; i--;j--; } if(up) c[k++]='1'; i=0; c[k]='\0'; for(k-=1;k>=0;k--) back[i++]=c[k]; back[i]='\0';} int main(){ int i; strcpy(ad[1],"1"); strcpy(ad[2],"1"); for (i=3;i<=4800;i++) { add(ad[i-2],ad[i-1],ad[i]); } while (scanf("%d",&i)+1) { printf("%s\n",ad[i]); } return 0;}
0 0
- zoj1828
- zoj1828
- zoj1828||joj1949 解题报告
- ZOJ1828题解--大数计算
- Linux 下Python版本的切换和管理
- Scikit-learn实例之理解SVM正则化系数C
- Gauss Laplacian Pyramid
- 开发中不经意的自动拆装箱影响性能问题
- java中Executor、ExecutorService、ThreadPoolExecutor介绍
- zoj1828
- linux设备驱动之VFS虚拟文件系统
- Android中的MVVM
- greendao3.0以上使用步骤(二):数据库到底该怎么升级
- java集合类概要
- 算法开启的人工智能时代!阿里聚安全算法挑战赛公开报名!
- EventBus
- PAT. advance level. T.1001. A+B format
- EventBus3.0的使用