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

目录

模拟题示例

冒泡排序

二维数组

字符数组

局部变量


模拟题示例

签到题:输入一个数字,假如是偶数就将该偶数除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

相关推荐
楚韵天工19 分钟前
基于GIS的无人机模拟飞行控制系统设计与实现
深度学习·算法·深度优先·无人机·广度优先·迭代加深·图搜索算法
Include everything1 小时前
Rust学习笔记(三)|所有权机制 Ownership
笔记·学习·rust
你也向往长安城吗1 小时前
推荐一个三维导航库:three-pathfinding-3d
javascript·算法
蒋星熠1 小时前
C++零拷贝网络编程实战:从理论到生产环境的性能优化之路
网络·c++·人工智能·深度学习·性能优化·系统架构
百度智能云2 小时前
VectorDB+FastGPT一站式构建:智能知识库与企业级对话系统实战
算法
CHANG_THE_WORLD2 小时前
# C++ 中的 `string_view` 和 `span`:现代安全视图指南
开发语言·c++
雨落倾城夏未凉2 小时前
9.c++new申请二维数组
c++·后端
雨落倾城夏未凉2 小时前
8.被free回收的内存是立即返还给操作系统吗?为什么?
c++·后端
雨落倾城夏未凉2 小时前
6.new和malloc的区别
c++·后端
郝学胜-神的一滴2 小时前
深入理解QFlags:Qt中的位标志管理工具
开发语言·c++·qt·程序人生