刷题Day14模拟高精度题二

前言

 本题是模拟高精度计算斐波那契数列的题,这种类型的题我以前做过类似的,所以不额外写题解了,题解给出以前的链接。
 先放题目来源:P2437 蜜蜂路线
在这里插入图片描述
解题链接: 刷题Day13高精度斐波那契数列
本题我的AC代码:

#include <stdio.h>
#include <stdlib.h>
struct node{
	int a[1000];
};

int main(int argc, char *argv[]) {
	int m,n,i,j;
	scanf("%d%d",&m,&n);
	n=n-m;
	m-=m;
	struct node number[3];
	int order1=0,order2=1,order3=2;
	for(i=0;i<3;i++){
		for(j=0;j<1000;j++){
			if(i==0||i==1){
				if(j==0)
				  number[i].a[j]=1;
				else
				  number[i].a[j]=0;
			}
			else{
				number[i].a[j]=0;
			}
		}
	}
	int add=0;
	if(n==0||n==1){
		printf("%d",1);
	}else{
    for(j=2;j<=n;j++){
    	add=0;
    	for(i=0;i<1000;i++){
			if(number[order1].a[i]+number[order2].a[i]+add>=10){
				number[order3].a[i]=number[order1].a[i]+number[order2].a[i]+add-10;
				add=1;
			}else{
				number[order3].a[i]=number[order1].a[i]+number[order2].a[i]+add;
				add=0;
			}
		}
		order1++;
		if(order1>2)
		 order1=0;
		order2++;
		if(order2>2)
		 order2=0;
		order3++;
		if(order3>2)
		 order3=0;
	}
	i=999;
	while(number[order2].a[i]==0){
		i--;
	}
	while(i>=0){
		printf("%d",number[order2].a[i]);
		i--;
	}
	
	}
	
	
	
	
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值