1 条题解
-
0
#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
- 上传者