1 条题解

  • 0
    @ 2025-4-13 16:01:18
    #include<bits/stdc++.h>
    #define long long int 
    using namespace std;
    const int N=1e5+5,INF=0x3f3f3f3f;
    int a[11];
    bool End(){//是否结束 
    	for(int i=1;i<=5;i++)if(a[i]!=0)return 0;//如果有数不是0则代表代码没有结束 
    	return 1;
    }
    bool cha(){//是否为等差数列 
    	for(int i=2;i<=4;i++)if(a[i]-a[i-1]!=a[i+1]-a[i])return 0;//如果差不相等则代表不是等差数列 
    	return 1;
    }
    bool bi(){//是否为等比数列 
    	for(int i=2;i<=4;i++)if(a[i]/a[i-1]!=a[i+1]/a[i]||a[i]%a[i-1]!=0||a[i+1]%a[i]!=0)return 0;//如果比不相等或比不是整数则代表不是等比数列 
    	return 1;
    }
    //注:没有判断是否为斐波那契数列的函数 
    void chaans(){//如果是等差数列输出结果 
    	int chai=a[2]-a[1];//公差 
    	for(int i=6;i<=10;i++){//构建后5项 
    		a[i] = a[i-1]+chai;
    		cout<<a[i]<<" ";
    	}
    }
    void bians(){//如果是等比数列输出结果 
    	int bii=a[2]/a[1];//公比 
    	for(int i=6;i<=10;i++){
    		a[i] = a[i-1]*bii;//构建后五项 
    		cout<<a[i]<<" ";
    	}
    }
    void feians(){//如果是斐波那契数列输出结果 
    	for(int i=6;i<=10;i++){
    		a[i] = a[i-1]+a[i-2];//经典递推公式 
    		cout<<a[i]<<" ";//边算边输出 
    	}
    }
    int main()
    {
    	while(cin>>a[1]>>a[2]>>a[3]>>a[4]>>a[5]){
    		if(End())break;
    		if(cha())chaans();
    		else if(bi())bians();
    		else feians();
    		cout<<endl;//记得换行 
    	}
    	return 0;//华丽结束 
    }
    
    

    信息

    ID
    1289
    时间
    1000ms
    内存
    32MiB
    难度
    10
    标签
    递交数
    3
    已通过
    1
    上传者