蓝桥杯试题——判断奇偶

写在前头:

       小鱼写的文章主要面向的是初学者,内容可能过于啰嗦,请见谅。


问题描述

       判断一个数是奇数还是偶数


输入格式

       如果是偶数,输出“even”。
  如果是奇数输出“odd”


样例输入

       34


样例输出

       even


代码
#include <iostream>
using namespace std;
int n;
void panduan(int n){
    if(n<100000000&&n%2==0) {
        cout<<"even"<<endl;
    }else{
        cout<<"odd"<<endl;
    }
}

int main()
{
    cin>>n;
    panduan(n);
    return 0;
}


本次题目讲解就做到这里吧,希望能帮到大家!

### 蓝桥杯机器人足球联赛算法题解题思路 蓝桥杯竞赛中的机器人足球联赛通常涉及复杂的数学建模、优化以及组合分析等问题。以下是基于已知引用内容和专业知识,针对此类问题的常见算法及其解法。 #### 1. **容斥原理的应用** 对于某些需要统计满足特定条件的数量的问题,可以采用容斥原理来解决。例如,在给定范围内找出能够被一组数整除的数目的情况[^1]。 具体实现可以通过枚举所有可能的质因数组合,并依据其数量的奇偶性决定加减操作。这种方法适用于多个约束条件下集合交并运算的结果计算。 ```python from math import gcd from functools import reduce def lcm(a, b): return a * b // gcd(a, b) def count_divisible(m, factors): total = 0 n = len(factors) for i in range(1 << n): subset = [factors[j] for j in range(n) if (i & (1 << j))] if not subset: continue current_lcm = reduce(lcm, subset) sign = (-1)**len(subset) total += sign * (m // current_lcm) return total ``` --- #### 2. **回文数生成与查找** 如果题目涉及到按顺序排列的回文数,则可通过分割数字的方式快速定位目标值。通过观察前几位数字的变化规律,可以直接构造对应的回文结构。 此方法的核心在于理解回文数的特点——前后对称分布。利用这一特性可以从任意索引位置反向推导出完整的数值表示形式。 ```python def nth_palindrome(k): length = 1 while True: start = int('1' + '0'*(length//2)) end = int('9'*((length+1)//2)) + 1 if k >= (end - start)*pow(10,(length-1)//2): k -= (end - start)*pow(10,(length-1)//2) length += 1 else: half = str(start + (k-1) // pow(10,(length-1)//2)) if length % 2 == 0: result = half + half[::-1] else: result = half + half[:-1][::-1] return int(result), length ``` --- #### 3. **递推关系周期检测** 当遇到具有固定模式重复出现的数据序列时,应优先考虑是否存在较短长度内的循环节现象。一旦确认存在这样的性质之后便能极大地简化后续处理过程。比如判断某个斐波那契型数列项能否被指定素数整除即属于这种情况之一。 ```python MOD = 3 def find_cycle_length(): seen = {} state = (0, 1) step = 0 while state not in seen: seen[state] = step next_state = ((state[1])%MOD , (state[0]+state[1])%MOD ) state = next_state step +=1 cycle_start = seen[state] cycle_len = step-cycle_start return cycle_len,cycle_start ``` --- #### 4. **概率模型构建** 部分场景下还需要运用到基本的概率论知识来进行精确评估。假设每场比赛获胜几率独立同分布的话,那么最终胜率就等于各场次单独胜利可能性相乘再除以总的可行方案总数得到的比例系数。 ```python import math def combinatorial_probability(ms,k,pis): numerator_product=1 denominator_combination=math.comb(sum(ms),sum(pis)) for m_i,p_i in zip(ms,pis): numerator_product *= math.comb(m_i,p_i) probability=numerator_product/denominator_combination return probability ``` --- #### 5. **二维RMQ查询加速技术** 为了高效完成区间最值询问任务,我们可以借鉴稀疏表(Sparse Table)的设计理念扩展至更高维度情形下去加以改进。这样做的好处是可以预先花费一定代价建立辅助数据结构从而换取在线阶段极低的时间消耗成本O(logN). ```python class TwoDSparseTable: def __init__(self,matrix): self.rows=len(matrix) self.cols=len(matrix[0]) log_rows=int(math.log(self.rows,2))+1 log_cols=int(math.log(self.cols,2))+1 st=[[[None]*log_cols for _ in range(log_rows)]for _ in range(self.rows)] # Initialize base cases. for r in range(self.rows): for c in range(self.cols): st[r][0][0]=matrix[r][c] # Fill sparse table using DP approach. for l_r in range(1,log_rows): width_row=pow(2,l_r) for row_idx in range(self.rows-width_row+1): for col_jdx in range(self.cols): st[row_idx][l_r][0]=min(st[row_idx][l_r-1][0], st[row_idx+(width_row>>1)][l_r-1][0]) for l_c in range(1,log_cols): height_col=pow(2,l_c) for row_idy in range(self.rows): for col_jdy in range(self.cols-height_col+1): st[row_idy][0][l_c]=min(st[row_idy][0][l_c-1], st[row_idy][col_jdy+(height_col>>1)][l_c-1]) self.sparse_table=st def query_min(self,x1,y1,x2,y2): dist_x=x2-x1+1 dist_y=y2-y1+1 lgx=int(math.log(dist_x,2)) lgy=int(math.log(dist_y,2)) return min( self.sparse_table[x1][lgx][lgy], self.sparse_table[x2-(1<<lgx)+1][lgx][lgy], self.sparse_table[x1][lgx][y2-(1<<lgy)+1], self.sparse_table[x2-(1<<lgx)+1][lgx][y2-(1<<lgy)+1] ) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值