A:求平均分
本题考查根据已知条件求表达式计算结果,并通过小学三年级所学知识进行辅佐。
x,y的范围已知且不特殊,INT足够包含,结果需要通过浮点数计算并保留两位小数。
B:求简单交错序列前N项和
本题For循环与While循环均可解决,通过简单的观察可知信息:分子不变永为1
偶数项为正数奇数项为负,分母从1开始每次递增规律为+=3,注意最后输出结果的格式问题。
C:Red的长跑
简单分析问题得出4大结果,即每天内的4种状态,只在早上/晚上跑,或者早晚都能跑与早晚都不跑.
对早晚都不跑的状态进行省略因为没有意义,将只在早/晚跑的2个状态的数值分别计算并与题目要求进行判断
若此时已满足题目要求则结果给出,若没有则考虑“都能跑”的状态,将它们作为“可分配”的状态点分配到
对应的任务要求最后重新检查结果是否可以完成任务即可.
D:质因数分解1
题目叫质因数分解,所以应当包含质因数分解的解决办法,所以我写了一个提供质因数分解的模板:
// 函数:质因数分解
vector<int> zysfj(int n) {//定义质因数分解函数
vector<int> nums;
// 从2开始尝试
for (int i = 2; i <= sqrt(n); ++i) {
// 如果i是n的因数
while (n % i == 0) {
nums.push_back(i);
n /= i;
}
}
// 如果n仍然大于1,说明n是一个大于sqrt(n)的素数
if (n > 1) {
nums.push_back(n);
}
return nums;
}
可以自己去调试,因题目范围问题,所以我选择直接暴力,但做题还是根据题意要求写真实需要完成的目标.
E:因子个数1
先了解因子的定义而后使用For或者While直接枚举即可.
F:Cassels方程
题目给出x2+y2+z2=3xyz表达式,
所以根据表达式直接求结果即可
G:五则运算
注意范围 1e8 在乘法中的极端案例100000000 * 100000000
会爆int,需要用到Long Long类型
而后注意在输入字符判断加减乘除等操作的时候
对 除法与取余进行特判 即 除数为0 问题