有大佬能看出这个代码有什么问题吗?

//求解循环汉诺塔
#include <iostream>
#include &quot;vector&quot;
using namespace std;

class Solution {
  public:
    vector<long long >fn;
    vector<long long >gn;

    Solution(): fn(10000000, 0), gn(10000000, 0) {}

    long long FN(int n) { //计算fn数组
        if (n == 1) {
            fn[1] = 1;
            return fn[1];
        } else {
            if (gn[n - 1] == 0) { //位置不存在
                fn[n] = ((2 * GN(n - 1) + 1) % 1000000007);
                return fn[n];
            } else {
                fn[n] = ((2 * gn[n - 1] + 1) % 1000000007);
                return fn[n];
            }
        }
    }
    long long  GN(int n) { //计算gn数组
        if (n == 1) {
            gn[1] = 2;
            return gn[1];
        } else {
            if (gn[n - 1] == 0 &amp;&amp; fn[n - 1] == 0) {
                gn[n] = ((2 * GN(n - 1) + FN(n - 1) + 2) % 1000000007);
                return gn[n];
            } else {
                gn[n] = ((2 * gn[n - 1] + fn[n - 1] + 2) % 1000000007);
                return gn[n];
            }
        }
    }
    void LoopHanoi(int n)
    {
        cout << FN(n) << &quot; &quot; << GN(n) << endl;
    }
};

int main() {
    Solution solution;
    int n;
    cin >> n;
    solution.LoopHanoi(n);
}
c
全部评论
牛客上只有文本太难看出来了,不如直接问chatgpt
点赞 回复 分享
发布于 2024-11-11 17:45 重庆

相关推荐

头像
09-01 09:00
已编辑
四川旅游学院 运营
牛客55195891...:主要是专业不好,别的没毛病
牛客解忧铺
点赞 评论 收藏
分享
机智的大学生这就开摆:有些地方描述有点儿空泛。传感器直接说清是哪款,要不然对方都不知道问啥。然后freertos那里的描述也是,加上freertos就实现了实时性吗?可以说基于freertos的调度,结合xxx优化/xxx技术实现了xxx检测的实时性。同时freertos也能实现异步io,也能实现灵活的并行架构和高并发。 检测时效性的问题要考虑哪里需要时效性,摔倒检测需要通过中断实现,至于温度这种大惯量就不需要,方案细节理清楚。然后freertos那里提升响应速度用的消息队列不是太合适,可以说是用的notify反正和消息队列差不多,或者说指针传参来优化消息队列的值传递进而提升线程间通信效率。 但凡是搞过开发的看一眼你的简历就知道有问题了,需要重新整理技术路线优化一下。首先搞清楚技术路线,描述好软硬框架,体现性能优化/低功耗等。例如后续针对xxx功能进行了xxx的优化,实现了xxx成果(这里可以展开描述你使用的工具链,你是用的串口调试助手还是RTT来打印日志,有没有用systemview来优化任务的优先级大小避免乱序调度,或者使用了Ozone调试定位问题等)。 描述问题上例如视觉项目那里,基于xxx通信接口编写xxx传感器的驱动,实现了xxx功能,并提供了xxx数据处理/稳定性/精确度/异步调用。或者也可以统一描述为基于xxx、xxx、xxx通讯协议编写xxx、xxx、xxx传感器的驱动。后续再单独给这些传感器的数据处理/优化等进行描述。 最重要的一点,实习栏太少了,五六个月不至于只干了这么点,把实习项目描述清楚,把自己会的不管有没有让你做都写进去。你写了实习这栏,内容就不能比剩下的两个项目差多少了。 最后就是看看岗位jd,跟着描述修改你的专业技能以及项目的描述,这样被回复的概率才大。 希望你早日找到理想工作!祝好
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务