本文主要是介绍保研机试算法训练个人记录笔记(五),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
模拟题示例
冒泡排序
二维数组
字符数组
局部变量
模拟题示例
签到题:输入一个数字,假如是偶数就将该偶数除2,假如是奇数就将该奇数*3+1,直到数字为1就停止,问在变换过程中的最大数字是多少,变换到1一共花了几步?
#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;}
冒泡排序
#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;}
二维数组
#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;
}
字符数组
#include <iostream>
int main(){char a[11] ="hello cpp!";//字符占10个,还有一个end结束符,共计11for(int i=0;i<10;i++){printf("%c",a[i]);}return 0;
}
局部变量
#include <iostream>
void change(int &x){x = x+1;
}
int main(){int b =10;change(b);printf("%d",b);return 0;
}
输出是 11
#include <iostream>
void change(int x){x = x+1;
}
int main(){int b =10;change(b);printf("%d",b);return 0;
}
输出是10
这篇关于保研机试算法训练个人记录笔记(五)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!