标签:输入数据为一个数组的下标
有一组特殊的数列a1,a2,...,其定义如下:a1=1,a2=2,...,a(n)=2*a(n-1)+a(n-2)。求第k个数项的值。
要求:第一行是测试数据的组数,后面跟着n行输入,每组测试数据占1行,包括一个正整数k(1<=k<1000000)。
#include<stdio.h>
#include<string.h>
long func2(int n)
{
	float a[1000000]={0};
	a[1]=1;
	a[2]=2;
	int i=0;
	for(i=3;i<=n;i++)
		a[i]=a[i-1]*2+a[i-2];
	return a[n];
}
void func1(int a[],int num)
{
	int i=0,m=0;
	for(i=0;i<num;i++)
	{	m=func2(a[i]);
		printf("%d.\n",m%32767);
	}
}
int main()
{
	int arr[100]={0};
	int n=0;
	printf("Please enter a number:");
	scanf("%d",&n);
	int i=0;
	for(i=0;i<n;i++)
	{
		scanf("%d",&arr[i]);
		if(arr[i]<2&&arr[i]==2)
			return 0;
	}
	func1(arr,n);
	return 0;
}标签:输入数据为一个数组的下标
原文地址:http://blog.51cto.com/13514833/2047130