本周五做数学作业时,偶然看到一道题,便写了两段代码,为3.7的比赛热身。(事实证明,对于比赛而言没啥卵用)
题目:(八下北师大版伴你学P43.5)

图片说明

依照题目打的代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    double x;
    int sum=0;
    cin>>x;
    for(int i=0;i<1000000000;i++){
        x=2*x-10;
        sum++;
        if(x>88){
            cout<<sum;
            break;
        } 
    }
    cout<<endl;
    cout<<x;
    return 0;
} 

并以此为根据,写了下面这个直接算出得数的代码

#include<bits/stdc++.h>
using namespace std;
int cx(double x){
    int sum=0;
    for(int y=0;y<1000000000;y++){
        x=2*x-10;
        sum++;
        if(x>88) return sum; 
    }
}
int main()
{
    double a[1000]={0.0};
    int su=0;
    for(double i=0.0;;i+=0.5){
        if(cx(i)==2){
            a[su]=i;
            su++;
        } 
        if(cx(i)==1) break;
    }
    cout<<a[0]<<"-"<<a[su-1];
    return 0;
}

运行结果:

图片说明

有0.5左右的误差
因为枚举时依次加了0.5,不然运行时间过长,毕竟已经172.7s了
至于优化方案。。。

To be continued...