大数版的斐波那契数列

光棍的yy

http://acm.nyist.net/JudgeOnline/problem.php?pid=655

时间限制:1000 ms  |  内存限制:65535 KB

难度:2

输入

第一行输入一个n表示有n个测试数据
以下n行,每行输入m个1
(1 <= n,m <= 200)

输出

输出这种组合种数,占一行

样例输入

3
11
111
11111

样例输出

2
3
8

描述

yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结啊

现在给你m个1,你可以把2个1组合成一个2,这样就不是光棍了

,问这样的组合有多少种??

例如(111  可以拆分为 111 12 21  有三种)

 

我的代码

#include <stdio.h>
#include <string.h>

#define MAX 210
char res[MAX][MAX] = { 0 };
char s[MAX];
int main(int argc,char *argv[]) {
	int i,j,t,d,T,n;
	//一次处理完毕 
	res[0][0] = res[1][0] = 1;

	for (i = 2; i < MAX; i++) {
		d = 0;
		for (j = 0; j < MAX; j++) {
			t = res[i - 1][j] + res[i - 2][j] + d;
			if (t > 9) {
				d = t / 10;
				res[i][j] = t % 10;
			} else {
				d = 0;
				res[i][j] = t;
			}
		}
	}

	//输出 
	scanf("%d",&T);
	while (T--) {
		scanf("%s",s);
		n = strlen(s);
		for (i = MAX - 1; i > 0 && res[n][i] == 0; i--);
		while (i >= 0)
			printf("%d",res[n][i--]);
		printf("\n");
	}


	return 0;
}

 

大数模版

string sum(string s1,string s2)
{
	if(s1.length()<s2.length())
	{
		string temp=s1;
		s1=s2;
		s2=temp;
	}
	int i,j;
	for(i=s1.length()-1,j=s2.length()-1;i>=0;i--,j--)
	{
		s1[i]=char(s1[i]+(j>=0?s2[j]-'0':0));   //注意细节
		if(s1[i]-'0'>=10)
		{
			s1[i]=char((s1[i]-'0')%10+'0');
			if(i) s1[i-1]++;
			else s1='1'+s1;
		}
	}
	return s1;
}

使用模版

#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
string sum(string s1,j--)
	{
		s1[i]=char(s1[i]+(j>=0?s2[j]-'0':0));   //注意细节
		if(s1[i]-'0'>=10)
		{
			s1[i]=char((s1[i]-'0')%10+'0');
			if(i) s1[i-1]++;
			else s1='1'+s1;
		}
	}
	return s1;
}
int main()
{
    int n,T;
    scanf("%d",&T);
    while(T--)
    {
        string s;cin>>s;
        if(s.size()==1){
                printf("1\n");continue;
        }
        else if(s.size()==2)
        {
            printf("2\n");continue;
        }
        string ans,a="1",b="2";
        for(int i=3;i<=s.size();i++)
        {
            ans=sum(a,b);
            a=b;
            b=ans;
        }
        cout<<b<<endl;
    }
    return 0;
}

相关文章

文章浏览阅读5.3k次,点赞10次,收藏39次。本章详细写了mysq...
文章浏览阅读1.8k次,点赞50次,收藏31次。本篇文章讲解Spar...
文章浏览阅读7.8k次,点赞9次,收藏34次。ES查询常用语法目录...
文章浏览阅读928次,点赞27次,收藏18次。
文章浏览阅读1.1k次,点赞24次,收藏24次。作用描述分布式协...
文章浏览阅读1.5k次,点赞26次,收藏29次。为贯彻执行集团数...