面对特定有序数组分组处理的思想————分奇偶讨论

前言

每当我们得到一组有序数组需要将其分类,有时我们应该考虑其是否可以保证每组数的个数相同,从而避免发生得到结果错误的情况。

举例

兔妈妈分胡萝卜问题

题目描述:

兔子妈妈有n颗胡萝卜,胡萝卜的能量值依次为1,3,5,…,2n−11,3,5,…,2n−1。兔子妈妈想把胡萝卜分给自己的两个兔宝宝,它想让兔宝宝分得胡萝卜的能量和的差值越小越好。请你帮它算一下,差值最小是多少?

输入描述:

第一行是一个整数T(1≤T≤1000)T(1≤T≤1000) 表示样例的个数。
以后每行一个样例,为一个整数n(1≤n≤109)n(1≤n≤109)

输出描述:

每行输出一个样例的结果,为一个整数。

代码展示:

#include <stdio.h>
int main() {
int T; 
scanf("%d", &t);
while(T--){
int n; 
scanf("%d", &n);
if(n == 1) {
printf("1\n");
}
else if(n == 2){
printf("2\n");
}
else {
if(n & 1) 
printf("1\n");
else 
printf("0\n");
}
}
}

具体讲解:

首先,明确我们仅需将物品分为两组,那么,利用我们的分奇偶讨论思想,我们知道应该本题应分为两种情况,一种两个兔子胡萝卜个数相同即每份的数的数量相同,另一种两份的数的数量不同。
本题较为简单,规律易寻,只需判断n的奇偶即可,但要注意,当n为0和1时较为特殊需特殊说明。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无敌暴龙战士16

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值