算法--简单数学
Posted Tancy.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法--简单数学相关的知识,希望对你有一定的参考价值。
简单数学
又名 脑筋急转弯 小学奥数
算法基础系列
前言:由于这类数学题非常简答,遇到的题目直接记忆即可
知识
该图片转自有猷大佬
后续补充中···
类型练习题
这是一类非常经典的数学题,没有思路的话,可以先打表找规律
公式类型题目,结果是 (p - 1) * (q - 1) - 1
#include <cstdio>
#include <iostream>
using namespace std;
int main()
int p, q;
cin >> p >> q;
cout << (p - 1) * (q - 1) - 1 << endl;
return 0;
1211. 蚂蚁感冒
脑筋急转弯
蚂蚁调头的情况忽略,直接穿过
第一个蚂蚁向右走的情况:
1.右边向左走的,必然被感染
2.右边向右走,必然不会被感染
3.左边向左走,必然不会被感染
4.左边向右走:
(1)右边存在向左走,则必然被感染
(2)右边不存在向左走,则必然不会被感染
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <iostream>
using namespace std;
const int N = 55;
int x[N]; //记录蚂蚁状态
int l = 0, lr = 0; // left表示左边向右走 right表示右边向左走
int n;
int main()
cin >> n;
for (int i = 0; i < n; i++)
cin >> x[i];
for (int i = 1; i < n; i++)
if (abs(x[i]) < abs(x[0]) && x[i] > 0)//abs 求绝对值
l++;
else if (abs(x[i]) > abs(x[0]) && x[i] < 0)
lr++;
if (x[0] > 0 && lr == 0 || x[0] < 0 && l == 0)
cout << 1 << endl;
else
cout << lr + l + 1 << endl;
return 0;
小学奥数题
模拟一下即可
#include <iostream>
using namespace std;
int main()
int n;//表示瓶盖
cin >> n;
int res = n;// 表示喝了多少瓶
while (n>=3)
res += n / 3;
n = n / 3 + n % 3;
cout << res << endl;
return 0;
以上是关于算法--简单数学的主要内容,如果未能解决你的问题,请参考以下文章