Cxw1234a 2022-03-26 20:03 采纳率: 42.9%
浏览 17

求斐波那契数列的第800项,输出为啥一直是空


#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string get_result(string a, string b);
int main(void)
{
    string s1 = "1";
    string s2 = "1";
    int i;
    for (i = 3; i <= 800; i++)
    {
        string s3 = get_result(s1, s2);
        s1 = s2;
        s2 = s3;
    }

    reverse(s2.begin(), s2.end());

    cout << s2 << endl;
    return 0;
}

string get_result(string a, string b)
{
    string s;
    int len1 = a.size();
    int len2 = b.size();
    int i;
    int cal = 0;
    for (i = 0; i < len1; i++)
    {
        s[i] = ((a[i] - '0') + (b[i] - '0') + cal) % 10;
        cal = ((a[i] - '0') + (b[i] - '0') + cal) / 10;
    }

    if(len1<len2)
    {
        for (i=len1; i < len2; i++)
        {
          s[i] = ((b[i] - '0') + cal) % 10;
          cal = ((b[i] - '0') + cal) / 10;
        }
    }

    if(cal>0)
    {
        s[i] = cal;
    }

    return s;
}
  • 写回答

1条回答 默认 最新

  • 我叫RT 2022-03-26 21:02
    关注

    首先,程序写的有点乱,get_result中有两处明显错误。

    img

    其一:string没有初始化长度,却直接使用下标运算取值
    其二:我猜你想将a、b的第i个元素值相加。那么这里是不是要对结果+'0'呢,你这个表达式计算的结果是ascii值,转换成char要加'0'。

    如果你向将string转为int的话推荐你使用 stoi() 函数,或者重新完善一下你的get_result函数

    评论

报告相同问题?

问题事件

  • 创建了问题 3月26日

悬赏问题

  • ¥15 做一个简单项目,用Python分析共享单车的数据
  • ¥20 在使用CESM2.2.0模型进行case.submit过程中出现如下错误(关键词-Map)
  • ¥15 有办法改变通过wifi进入的网站的设置吗
  • ¥15 所以到底怎么算!算到凌晨五点都算不出来!
  • ¥15 label_studio
  • ¥15 请教如何phython发邮件
  • ¥15 linux系统安装问题
  • ¥15 路径规划如何采用矢量法让他们尽量在一个方向
  • ¥15 crypto 一道rsa解密题
  • ¥15 survIDINRI已将生存时间转为数值变量,仍错误 Time variable is not numeric。