1 条题解

  • 0
    @ 2024-12-24 10:06:18

    C :

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    char f[2000][20000];
    void plus(int a){
    int i,c=0,n;
    for(i=0;i<strlen(f[a-1]);i++){
    if(f[a-2][i]==0) n=f[a-1][i]-'0'+c;
    else n=f[a-1][i]-'0'+f[a-2][i]-'0'+c;
    f[a][i]=n%10+'0';
    c=n/10;}
    if(c) f[a][i]=c+'0';}
    
    int main(){
    int a,b;
    while(scanf("%d%d",&a,&b)!=EOF){
    int n=b-a,i;
    memset(f,0,sizeof(f));
    strcpy(f[0],"1");
    strcpy(f[1],"1");
    for(i=2;i<=n;i++) plus(i);
    for(i=strlen(f[n])-1;i>=0;i--) printf("%c",f[n][i]);
    puts("");}
    return 0;}
    

    C++ :

    #include<iostream>
    using namespace std;
    int move(int n)
    {
    	if(1==n || 2==n)
    		return 1;
    	if(3==n) 
    		return 2;
    	else
    	{
    		return move(n-1)+move(n-2);
    	}
    }
    int main()
    {
    	int m,n;
    	cin>>m>>n;
    	cout<<move(n-m+1)<<endl;
    	return 0;
    }
    
    • 1

    信息

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