GESP2级编程题(回忆版)
2026-09-17 22:55:10
发布于:上海
GESP2级感觉不算特别特别难,但编程题还是挺难的,超纲不超纲不好说(
还是与往常一样,T1看逻辑,T2画图
直接开始
T1
题目主旨
假设两个数3与4,3为第一项数,4为第二项数
假如我们要求第三项数,运算为
所以第三项为5
公式为:
接着,我们在设一个限定值,当第项超过限定值时,结束运算
输入
共三行
第一行输入第一项数
第二行输入第二项数
第三行输入限定值
输出
共一行
输出当停止运算时,最后的项数
我的思路
这道题很想像斐波那契数列
我们创造一个vector<long double> v;变量
为什么要用
long double,有人疑问,其实没有什么,测试点超出double范围,会导致RE,在这道题中只使用double这道题只得2.5分
我们将第一项设为a,第二项为b,限定值为m,a,b加入v,接着对于a b进行检测,如果a>m 或 b>m,就输出对应的项数,然后return 0
创造变量i=2
接着,使用while循环,条件写v[i-1]<=m,v[i-1]是因为要对于上一个数的判断
使用sqrt函数,那么写出公式v[i]=sqrt(v[i-1]*v[i-1]+v[i-2]*v[i-2])
再接着,将i进行加一
输出最后的项数
MY ANSWER
#include<bits/stdc++.h>
using namespace std;
vector<long double> v;
int mian(){
long double a,b,m;
cin>>a>>b>>m;
v.push_back(a);
v.push_back(b);
if(a>m){
cout<<1;
return 0;
}
else if(b>m){
cout<<2;
return 0;
}
else{
int i=2;
while(v[i-1]<=m){
v[i]=sqrt(v[i-1]*v[i-1]+v[i-2]*v[i-2]);
i++;
}
cout<<i;
}
}
T2
题目主旨
在一个(8行16列)的画布内,
更新中
这里空空如也





















有帮助,赞一个