1205: 你爱我么?

这篇博客介绍了一个有趣的数学问题,LCY希望通过花瓣的数量来预测他暗恋的女生是否会喜欢他。根据算命先生的建议,奇数花瓣意味着“爱”。文章提供了一段C语言代码,用于解决在给定的花束中,LCY最多可以送出多少个花瓣以确保最后结果是“爱”。代码考虑了全偶数花瓣和偶奇混合的情况,并给出了相应的策略。
摘要由CSDN通过智能技术生成

题目描述

LCY买个n束花准备送给她暗恋的女生,但是他不知道这个女生是否喜欢他。这时候一个算命先生告诉他让他查花瓣数,第一个花瓣表示"爱",第二个花瓣表示"不爱",第三个花瓣表示"爱"…
为了使最后结果是"爱",LCY需要从n束花中选出一些,你能帮他算出最后他送给这个女生的花中最多包含多少个花瓣吗?

输入

首先输入一个整数T,表示测试实例的个数。
接下来T组测试实例,每组实例首先输入一行,包括一个整数n(1 <= n <= 100)。
然后输入一行,n个数a1,a2…an(1 <= ai <= 100),表示每束花包含的花瓣的个数。

输出

每组实例输出一个整数,表示LCY最多能送多少个花瓣给这个女生。

样例输入 Copy

3
1
1
1
2
3
5 6 7

样例输出 Copy

1
0
13

提示

每一束花不允许去掉一些花瓣再送。这样算命就不准了-_-#

来源/分类

2013校赛
Notice:思路from 清风徐来,代码为自己实现。

#include <stdio.h>
#include <stdlib.h>
/*思路:
花瓣数肯定为奇数时,才会出现“爱”
1.sum为奇数,则证明这就是最大的数,直接输出
2.sum为偶数是有两种可能:1、全偶数组成。这种可能就可以直接输出零了  2、偶奇数组成,减去最小的奇数,输出结果
*/

int main()
{
	int T;
	int n;
	int a[100] = { 0 };
	int sum;
	int minOddNum;//最小奇数
	int isEvenNum;//判断是否为全偶数 默认是
	int isFirst;//用来判断是否是第一个奇数
	scanf("%d", &T);
	while (T>0)
	{
		scanf("%d", &n);
		sum = 0;
		isFirst = 1;
		isEvenNum = 1;
		for (int i = 0; i < n; i++)
		{
			scanf("%d", &a[i]);
			sum+= a[i];
			if (a[i] % 2 != 0)//如果有元素不是偶数 同时说明该元素为奇数
			{
				isEvenNum = 0;//置全偶数标志为0
				if (isFirst == 1)
				{
					isFirst = 0;
					minOddNum = a[i];
				}
				if (a[i] <minOddNum)
				{
					minOddNum = a[i];
				}
			}

		}
		if (sum % 2 == 0)
		{
			if (isEvenNum == 1)
			{
				printf("%d+\n", 0);
			}
			else
			{
				printf("%d-\n", (sum - minOddNum));
			}

		}
		else
		{
			printf("%d*\n", sum);
		}
		T--;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ZZULI丶TiAmo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值