vector的基本使用

以 【深基5.例3】冰雹猜想 此题为例,使用vector

题目描述

给出一个正整数 n,然后对这个数字一直进行下面的操作:如果这个数字是奇数,那么将其乘 3 再加 1,否则除以 2。经过若干次循环后,最终都会回到 1。经过验证很大的数字都可以按照这样的方式比变成 1,所以被称为“冰雹猜想”。例如当 n 是 20,变化的过程是 20->10->5->16->8-> 4->2-> 1。

根据给定的数字,验证这个猜想,并从最后的1开始,倒序输出整个变化序列。

本人代码如下

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    vector<int>num;//创建一个名字为num的整形容器
    int count=0;
    num.push_back(n);//先把输入的数字放入容器
    while(num[count]!=1)
    {        
        if(num[count]%2==0) num.push_back(num[count]/2); //添加数字在容器结尾     
        else num.push_back(num[count]*3+1);
        count++;
    }
    for(int i=num.size()-1;i>=0;i--) cout<<num[i]<<" ";//倒叙输出所有数字,利用num.size()获得容器的大小
    return 0;
}
posted @ 2024-12-01 14:21  屈臣  阅读(9)  评论(0编辑  收藏  举报