1 条题解

  • 0
    @ 2025-2-14 21:01:01

    C :

    #include<stdio.h>
    int main()
    {
    	int a[50]={0};
    	int b[50]={0};
    	int c[50]={0};
    	int n;
    	scanf("%d",&n);
    	a[0]=1;
    	b[0]=1;
    	int i,m;
    		if(n==0)
    	{
    		printf("0\n");
    	}
    	else
    	{
    		if(n==1||n==2)
    		{
    			printf("1\n");
    		}
    		else
    		{
    			for(i=0;i<n-3;i++)
    	   {
    		for(m=0;m<50;m++)
    		{
    			c[m] = a[m] +b [m];
    			if(c[m]>9)
    			{
    				c[m] = c[m] - 10;
    				a[m+1] = a[m+1] + 1;
    			}
    		}
    		for(m=0;m<50;m++)
    		{
    			a[m] = b[m];
    			b[m] = c[m];
    		}
    	
    		}
    			for(i=0;;i++)
    	{
    		if(c[49-i]!=0)
    		{
    			break;
    		}
    	}
    	for(m=49-i;m>-1;m--)
    	{
    		printf("%d",c[m]);
    	}
    	}
    	}
    	
    	
    	return 0;
    }
    
    

    C++ :

    #include<iostream>
    #include<cstdlib>
    const int n=10000;
    long long a[n];
    using namespace std;
    int main()
    {
    	int k;
    	cin>>k;
    	a[0]=0;
    	a[1]=1;
    	a[2]=1;
    	for(int i=2;i<k;i++)
    	  a[i]=a[i-1]+a[i-2];
    	cout<<a[k-1];
    	//system("pause");
    	return 0;
    }
    
    

    Pascal :

    var
       n,a,b,i,c:longint;
    begin
     readln(n);
     a:=0;
     b:=1;
     for i:=3 to n do
      begin
       c:=b;
       b:=a+b;
       a:=c;
      end;
     writeln(b);
    end.
    

    Python :

    # coding=utf-8
    def fib(n):
        if n == 1:
            return 0
        if n == 2:
            return 1
        else:
            return fib(n-1) + fib(n-2)
    
    
    import io
    import sys
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
    for line in sys.stdin:
        a = line.split()
        print(fib(int(a[0])))
    
    • 1

    信息

    ID
    609
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者