![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机试
文章平均质量分 53
wafq
这个作者很懒,什么都没留下…
展开
-
机试学习笔记08 -- 栈的应用、优先队列的应用
一、栈的应用c++的栈#include<bits/stdc++.h>using namespace std;stack<int> S;int main(){ S.push(1); S.push(10); S.push(7); while(!S.empty()){ cout << S.top() << endl; S.pop(); } return 0;}c语言的栈//栈和队列都可以用数组模拟实现 #include原创 2021-07-08 09:49:08 · 128 阅读 · 0 评论 -
机试学习笔记07 -- 斐波那契数列、素数判定、素数筛选、二分快速幂、分解素因数、常见数学公式总结、规律神器OEIS、高精度问题
一、斐波那契数列注意90项大概就会超出int范围如果项数太大取模的话,可以参考之前的做法。如果给你一个数列:a(1) = 1, a(n+1) = 1 + 1/a(n)。那么它的通项公式为:a(n) = fib(n+1) / fib(n)。#include<bits/stdc++.h>using namespace std;int f[10005] = {0};int main(){ int n; cin >> n; f[0] = 1, f[1] = 1;原创 2021-07-04 23:00:28 · 494 阅读 · 0 评论 -
机试学习笔记06 -- 同余模定理、最大公约数、最小公倍数、递归
一、同余模定理1 以下三条定理等价:(1) a 和 b 是模 d 同余的.(2) 存在某个整数 n ,使得 a = b + nd .(3) d 整除 a - b .2 存在以下应用(a+b)%c=(a%c+b%c)%c;(a-b)%c=(a%c-b%c)%c;(ab)%c=(a%cb%c)%c;即相加取模等于取模相加再取模,注意里面没括号,且不适用于除法。先把乘法取模,再把加法取模#include<bits/stdc++.h>using namespace std;原创 2021-07-03 19:22:01 · 277 阅读 · 0 评论 -
机试学习笔记05 -- 查找、贪心、链表问题
一、查找问题1 顺序查找直接for循环一个个去查,但时间复杂度太大2 排序+二分最好用于已经排序好的#include <bits/stdc++.h> using namespace std; int a[10005]; int main(){ int n,x; scanf("%d", &n);//输入n个数 for (int i = 1; i <= n; i++) { scanf("%d", &am原创 2021-06-30 22:55:58 · 121 阅读 · 3 评论 -
机试学习笔记04 -- 字符串与排序问题
一、字符串问题1 统计字符个数有空格,不能用scanf,要用gets,且gets遇到回车结束。#include<bits/stdc++.h>using namespace std;char s[5];char t[100];//空格不能用scanf!gets遇到回车结束 int main(){ while(1){ gets(s); if(s[0] == '#') break; gets(t); int ls = strlen(s); int lt =原创 2021-06-03 09:28:03 · 93 阅读 · 0 评论 -
机试学习笔记02 -- 简单模拟与进制转换
1. 多组输入问题–补充上篇#include <bits/stdc++.h>using namespace std;int main(){ int a, b; while(scanf("%d%d", &a, &b) != EOF){ scanf("%d%d", &a, &b) printf("%d\n", a + b); } return 0;}2. 简单模拟理解题目意思,直接模拟计算计算1-n的和:#include原创 2021-05-29 22:10:52 · 148 阅读 · 0 评论 -
机试学习笔记01 --梦的开始
1. 输入输出输入带空格scanf()不行,用gets()scanf(”%d“)不会读取回车,但gets()会遇到回车结束,所以中间要用getchar()吃掉回车scanf("%c")会读取回车为一个字符,scanf("%s")不会读取回车,会丢掉,故二维地图输入不能用%c输出进制转换%x 小写16进制输出%X 大写16进制输出%o 八进制输出输出增加前置0%02d 2表示宽度,0表示0补充输出保留小数%.2lf 2表示保留两位小数long long%lld 1e-18 ~ 1e原创 2021-05-29 14:00:26 · 134 阅读 · 1 评论 -
机试学习笔记03 --排版问题与日期问题
1 排版类问题1.1 字符菱形+变体右下直角三角:先空格,再字符。#include<bits/stdc++.h>using namespace std;int main(){ int n; scanf("%d", &n); for(int i = 1; i <= n; ++i){ for(int j = 1; j <= n - i; ++j){ printf(" "); } for(int j = 1; j <= i; ++j)原创 2021-06-01 13:51:26 · 96 阅读 · 0 评论