您的位置:首页 > 其它

hdu1715大菲波拉契数

2015-06-11 17:30 281 查看

高精度加法

对于菲波拉契数,f[i]=f[i-1]+f[i-2];(i>2)

这里的n<1000,还是要使用高精度加法的。

高精度加法和乘法,他们还是有很多相通的地方的。

[code]#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 1003
int a

;
int main()
{
    memset(a,0,sizeof(a));
    a[1][0]=1;
    a[2][0]=1;
    int  n ;
    for(int i  =   3; i<N;i++)
    {
        int tmp = 0;
        int k = 0;
        for(int j = 0;  j<N;j++)
        {
            tmp = a[i-1][j]+a[i-2][j]+k;
            a[i][j]=tmp%10;
            k =tmp/10;
        }
    }
    scanf("%d",&n);//没有看清楚格式。
    while(scanf("%d",&n)!=EOF)
    {
        int i=N-1;
        while(a
[i]==0) i--;
        while(i>=0) printf("%d",a
[i--]);
        printf("\n");
    }
    return 0 ;
}


我们可以,发现,不管是加法还是乘。只要是有关于进位的,我都可以统一设置一个变量K来表示来自低位的进位一个tmp表示当前本位(没有进位的)结果。然后,本位就是tmp%10,然后向高位进位就是k=tmp/10
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: