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

目录

模拟题示例

冒泡排序

二维数组

字符数组

局部变量


模拟题示例

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

相关推荐
程序员-King.几秒前
2、桥接模式
c++·桥接模式
chnming19875 分钟前
STL关联式容器之map
开发语言·c++
VertexGeek7 分钟前
Rust学习(八):异常处理和宏编程:
学习·算法·rust
石小石Orz8 分钟前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
程序伍六七18 分钟前
day16
开发语言·c++
小陈phd35 分钟前
Vscode LinuxC++环境配置
linux·c++·vscode
火山口车神丶1 小时前
某车企ASW面试笔试题
c++·matlab
jiao_mrswang1 小时前
leetcode-18-四数之和
算法·leetcode·职场和发展
qystca1 小时前
洛谷 B3637 最长上升子序列 C语言 记忆化搜索->‘正序‘dp
c语言·开发语言·算法
薯条不要番茄酱1 小时前
数据结构-8.Java. 七大排序算法(中篇)
java·开发语言·数据结构·后端·算法·排序算法·intellij-idea