杭电OJ 1715 AC

Problem Description

Fibonacci数列,定义如下:
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。

Input

输入第一行为一个整数N,接下来N行为整数Pi(1<=Pi<=1000)。

Output

输出为N行,每行为对应的f(Pi)。

Sample Input

5

1

2

3

4

5

Sample Output

1

1

2

3

5

以下为AC代码

#include <iostream>
#include <string.h>
using namespace std;
void add_big_number(int a[],int b[],int& len) {
	int c = 0;
	int temp;
	for(int i = 0; i < len; i++) {
		temp = a[i];
		a[i] = a[i] + b[i] + c;
		c = a[i] / 10;
		a[i] = a[i] % 10;
		b[i] = temp;
	}
	if(c !=  0) {
			a[len] = c;
			len++;
		}
}
int main() {
	int a[1000],b[1000];
	int n;
	int count;
	cin >> count;
	for(int i = 0; i<count; i++) {
		cin>>n;
		int len = 1;
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));
		a[0] = 1;
		b[0] = 1;
		if(n > 2){
			int s = 2;
			while(s!=n) {
				add_big_number(a,b,len);
				s++;
			}
		}
		for(int j = 0; j<len;j++){
			cout<<a[len-1-j];
		}
		cout<<endl;
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36552817/article/details/86596559