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

目录

模拟题示例

冒泡排序

二维数组

字符数组

局部变量


模拟题示例

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

相关推荐
CHANG_THE_WORLD2 小时前
金字塔降低采样
算法·金字塔采样
我爱学嵌入式2 小时前
C语言第 9 天学习笔记:数组(二维数组与字符数组)
c语言·笔记·学习
不知天地为何吴女士4 小时前
Day32| 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
算法
小坏坏的大世界4 小时前
C++ STL常用容器总结(vector, deque, list, map, set)
c++·算法
liulilittle5 小时前
C++ TAP(基于任务的异步编程模式)
服务器·开发语言·网络·c++·分布式·任务·tap
励志要当大牛的小白菜7 小时前
ART配对软件使用
开发语言·c++·qt·算法
qq_513970447 小时前
力扣 hot100 Day56
算法·leetcode
PAK向日葵8 小时前
【算法导论】如何攻克一道Hard难度的LeetCode题?以「寻找两个正序数组的中位数」为例
c++·算法·面试
爱喝矿泉水的猛男10 小时前
非定长滑动窗口(持续更新)
算法·leetcode·职场和发展
_Kayo_10 小时前
VUE2 学习笔记6 vue数据监测原理
vue.js·笔记·学习