XX-XW 2022-03-14 11:22 采纳率: 0%
浏览 20

用vector一直是超时问题,测试是有死循环1,求解决

#include<iostream>
using namespace std;
#include<vector>
int main(){
    vector<int>xx;
    int n;
    cin>>n;
    while(n!=1){
    
    if(n%2==0){
        n /=2;
        xx.push_back(n);
    }else 
         n=n*3+1;
    xx.push_back(n);
    }
    while(!xx.empty()){
        cout<<xx.back()<<" ";//.back()是一个返回vector尾部元素的函数 
    }
    return 0;
}

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-03-14 11:35
    关注

    else这里少了大括号了吧?

    while(n!=1){
        
        if(n%2==0)
        {
            n /=2;
            xx.push_back(n);
        } 
        else 
        {
             n=n*3+1;
            xx.push_back(n);
        }
    }
    

    你把最后的while先注释掉,随便输出个值,看看是否死循环

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月14日

悬赏问题

  • ¥15 mysql 对多个字段模糊查询,返回第一个匹配的字段
  • ¥15 the testing results of the whole dataset is empty
  • ¥15 can问题,往哥解决
  • ¥15 FFmpeg 成功推流到 Nginx RTMP 服务器但无法用 ffplay 或 VLC 播放
  • ¥15 请修改以下C语言代码使其能正确输出最短路径
  • ¥20 抖音商城拉码器安卓报错求解决办法或者有新的拉码脚本也可以介绍一下
  • ¥15 MPLAB IDE V2.35 报错make[2]: *** [build/default/production/_ext/1472/MSSP_I2C.p1] Error 1
  • ¥15 Unity2D URP项目TextMeshPro(3D)无法显示文字
  • ¥15 新唐M451 DTMF检测和发送代码修改
  • ¥15 在国外文献网站里点击view pdf 加载异常缓慢甚至加载不出来。