<仅是自己做笔记。。。系列-11>输入n,用最快的方法求Fibonacci数列的第n项。

本文介绍了一种使用C++实现斐波那契数列的方法,包括一个简单的类`CFibonacci`来生成指定位置的斐波那契数值,并提供了一个递归加迭代思想相结合的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
using namespace std;
class CFibonacci
{
public:
    CFibonacci()
    {
        vi[1] = 0.0;
        vi[2] = 1.0;
    }
    double getNth(int n)
    {
        if(n < 0)
            return -1;
        else if(n == 0)
        {
            return 0.0;
        }
        else if(n == 1)
        {
            return 1.0;
        }
        for(int i = 2;i <= n;i ++)
        {
            vi[0] = vi[1];
            vi[1] = vi[2];
            vi[2] = vi[1] + vi[0];
        }

        return vi[2];
    }
private:
    double vi[3];

};


int main(int argc, char *argv[])
{
    CFibonacci a;
    cout << a.getNth(46) << endl;
    return 0;
}<pre name="code" class="cpp">//这是类似于上面的递归,速度也还不错

long fibonacci(int n,long prepre,long pre,int begin = 2)
{
    if(n == 0)
        return 0;
    else if(n == 1)
    {
        return 1;
    }
    else if(n==begin)
    {
        return pre+prepre;
    }
    return fibonacci(n, pre, prepre+pre, ++begin);    //这里相当于迭代实现for-loop的浓缩
}



<think>我们根据用户需,分步骤完成以下任务:1.在CentOS中安装Docker2.启动Docker并运行hello-world镜像进行验证3.创建一个包含app.py(生成斐波那契数列)的目录4.编写Dockerfile,将Python应用程序构建成名为my-python-app的自定义镜像注意:用户要参考站内引用,但站内引用内容与当前需关联不大。我们主要根据用户需来编写步骤。步骤1:安装Docker(CentOS系统)步骤2:启动Docker并验证步骤3:创建目目录,编写斐波那契数列的Python程序(app.py)步骤4:编写Dockerfile步骤5:构建自定义镜像并运行由于用户要使用中文,并且需要生成相关问题,我们在最后会生成相关问题。开始详细步骤:</think>### 在CentOS中安装Docker并构建Python应用镜像 #### 1. 安装Docker ```bash # 卸载旧版本(如有) sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine # 安装必要工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加Docker仓库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装Docker引擎 sudo yum install -y docker-ce docker-ce-cli containerd.io # 启动Docker服务 sudo systemctl start docker sudo systemctl enable docker # 验证安装 docker --version ``` #### 2. 验证Docker运行 ```bash # 运行hello-world测试镜像 sudo docker run hello-world ``` 成功时显示:`Hello from Docker!` 及说明信息[^1] #### 3. 创建Python应用 ```bash # 创建目目录 mkdir python-docker && cd python-docker # 创建斐波那契数列应用 cat > app.py <<EOF def fibonacci(n): a, b = 0, 1 fib_seq = [] while len(fib_seq) < n: fib_seq.append(a) a, b = b, a + b return fib_seq if __name__ == "__main__": n = int(input("输入斐波那契数列长度: ")) print(f"前{n}斐波那契数列: {fibonacci(n)}") EOF ``` #### 4. 创建Dockerfile ```bash cat > Dockerfile <<EOF # 使用官方Python运行时作为父镜像 FROM python:3.9-slim # 设置工作目录 WORKDIR /app # 将当前目录内容复制到容器中 COPY . . # 容器启动时运行app.py CMD ["python", "./app.py"] EOF ``` #### 5. 构建自定义镜像 ```bash # 构建镜像(注意最后有个点) sudo docker build -t my-python-app . # 验证镜像创建 sudo docker images | grep my-python-app ``` 输出示例:`my-python-app latest a1b2c3d4e5f6 2 minutes ago 125MB` #### 6. 运行自定义镜像 ```bash sudo docker run -it --rm my-python-app ``` 运行后输入数字(如10),输出结果: `前10斐波那契数列: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]` > **关键说明**: > 1. 所有操作需要`sudo`权限或加入`docker`用户组 > 2. `Dockerfile`和`app.py`必须在同一目录 > 3. 构建镜像时末尾的点`.`表示当前目录 > 4. `-it`参数启用交互模式,`--rm`运行后自动删除容器 #### 完整流程示意图 ```mermaid graph TD A[安装Docker] --> B[验证hello-world] B --> C[创建app.py] C --> D[编写Dockerfile] D --> E[构建my-python-app镜像] E --> F[运行容器] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值