保研机试算法训练个人记录笔记(五)

目录

模拟题示例

冒泡排序

二维数组

字符数组

局部变量


模拟题示例

签到题:输入一个数字,假如是偶数就将该偶数除2,假如是奇数就将该奇数*3+1,直到数字为1就停止,问在变换过程中的最大数字是多少,变换到1一共花了几步?

cpp 复制代码
#include <iostream>
using namespace std;

int main() {
    long long n; // 使用long long以支持大数字
    cout << "请输入一个正整数: ";
    cin >> n;

    if(n <= 0) {
        cout << "请输入一个正整数。" << std::endl;
        return 1;
    }

    int steps = 0;
    long long maxNumber = n;

    while (n != 1) {
        if (n % 2 == 0) {
            n /= 2;
        } else {
            n = 3 * n + 1; // 此处修正为正确的操作
        }
        if (n > maxNumber) {
            maxNumber = n;
        }
        steps++;
    }

    cout << "变换过程中的最大数字是: " << maxNumber << endl;
    cout << "变换到1共花了 " << steps << " 步。" << endl;
    return 0;

}

冒泡排序

cpp 复制代码
#include <iostream>

void swap(int &a, int &b){
    int temp;
    temp = a;
    a=b;
    b=temp;

}
int main(){
    int a[7]={2,9,4,7,5,8,1};
    for(int i =0;i<7-1;i++){  //循环n-1次,7是数组元素个数,"< 7-1"是代表循环0,1,2,3,4,5(共计6次)
        for(int j =0;j<6-i;j++){ //冒泡排序每一次循环,可以确定最后一个数,那么就截止到上一次确定的数之前,这里的最大位不应该包含最后一个,
            //所以这里是截止到"<6-i",实际上是"<=6-i-1",然后用j+1来表示数组最后一位,比如i=0,a[j+1]==a[6-0-1+1]=a[6]
            if (a[j]>a[j+1]){
                swap(a[j],a[j+1]);
            }
        }
    }
    for(int i =0;i<6;i++){
        printf("%d",a[i]);
    }
        return 0;
    }

二维数组

cpp 复制代码
#include <iostream>
int main(){
    int a[5][6]={};//5行六列
    for(int i =0;i<5;i++){
        for(int j =0;j<6;j++){
            printf("%d \t",a[i][j]);

        }
        printf("\n");
    }
    return 0;
}

字符数组

cpp 复制代码
#include <iostream>
int main(){
    char a[11] ="hello cpp!";//字符占10个,还有一个end结束符,共计11
    for(int i=0;i<10;i++){
        printf("%c",a[i]);

    }
    return 0;
}

局部变量

cpp 复制代码
#include <iostream>
void change(int &x){
    x = x+1;
}
int main(){
    int b =10;
    change(b);
    printf("%d",b);
    return 0;
}

输出是 11

cpp 复制代码
#include <iostream>
void change(int x){
    x = x+1;
}
int main(){
    int b =10;
    change(b);
    printf("%d",b);
    return 0;
}

输出是10

相关推荐
დ旧言~3 分钟前
专题八:背包问题
算法·leetcode·动态规划·推荐算法
小俊俊的博客5 分钟前
海康RGBD相机使用C++和Opencv采集图像记录
c++·opencv·海康·rgbd相机
_WndProc20 分钟前
C++ 日志输出
开发语言·c++·算法
薄荷故人_22 分钟前
从零开始的C++之旅——红黑树及其实现
数据结构·c++
m0_7482400222 分钟前
Chromium 中chrome.webRequest扩展接口定义c++
网络·c++·chrome
qq_4335545429 分钟前
C++ 面向对象编程:+号运算符重载,左移运算符重载
开发语言·c++
努力学习编程的伍大侠33 分钟前
基础排序算法
数据结构·c++·算法
车轮滚滚__34 分钟前
uniapp对接unipush 1.0 ios/android
笔记
XiaoLeisj1 小时前
【递归,搜索与回溯算法 & 综合练习】深入理解暴搜决策树:递归,搜索与回溯算法综合小专题(二)
数据结构·算法·leetcode·决策树·深度优先·剪枝
yuyanjingtao1 小时前
CCF-GESP 等级考试 2023年9月认证C++四级真题解析
c++·青少年编程·gesp·csp-j/s·编程等级考试