无C不行-废物一个:C语言

问题描述

Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。

当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。

#include<stdio.h>
int main()
{
	int f1,f2,f3,n,i,s;
	scanf("%d",&n);
	f1=f2=1;
	for(i=3;i<=n;i++)
	{
		f3=f2+f1;
		f1=f2;
		f2=f3;
	}
	s=f3%10007;
	printf("%d",s);
	return 0;
}

问题描述

杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int i,j,a[n][n];
    a[0][1]=0;
    for(i=0;i<n;i++)
        a[i][0]=1;
    for(i=1;i<n;i++)
	{
		a[i][i]=1;
		a[i-1][i]=0;
	}
	for(i=1;i<n;i++)
	{
		for(j=1;j<=i;j++)
		{
			a[i][j]=a[i-1][j-1]+a[i-1][j];
        }
	}
    for(i=0;i<n;i++)
    {
        for(j=0;j<=i;j++)
        {
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
	return 0;
}

 

它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。

 

1.

long long fib(int k){
    if(k==1||k==2) return 1;
    return fib[k-1]+fib[k-2];
}
#include<stdio.h>

int main()
{
    int fn[] = {1, 1}, i, n, s;

    scanf("%d", &n);

    for(i = 3; i <= n; i++) fn[i & 1] = fn[(i-1) & 1] + fn[(i-2) & 1];

    s = fn[n & 1] % 10007;
    printf("%d", s);

    return 0;
}

```c


```