Fortune Telling

2023-12-17 21:37:52

Fortune Telling

题目链接

题意

输出一个数字,代表花束中最大的花瓣数量,这就会导致“爱”。

思路

  1. 理解题目,当花瓣的数量为奇数时才会有“爱”
  2. 用if来判断p的情况
  3. 在for循环输出ans

坑点

要注意当p为0的情况

实现步骤
  1. 定义和输入所需值
  2. 当p值为偶数时就不能得到爱,当为奇数时就要统计花瓣数
  3. 在for循环中找到第一个为奇数的数,将p的值赋予它,即a[i]=0
    4.最后输出结果即可
代码
#include<iostream>
#include<algorithm>
using namespace std;
int n,a[101],p=0,ans=0;
//n甘菊的数量,a[105]存每朵花花瓣数
//p是花瓣为奇数的花的个数 
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        if(a[i]%2!=0) p++;
		//要统计有几朵是奇数个花瓣 
    }
    if(p==0) cout<<0;
	//如果奇数个数为0显然不可能数到爱 
    if(p%2!=0) 
    {
        for(int i=1;i<=n;i++)
		{
			ans+=a[i];
		}//统计花瓣总数 
        cout<<ans;
    }
    else{
        sort(a+1,a+n+1);
        //使数组中的数字呈递增顺序排序 
        for(int i=1;i<=n;i++)
		{
			if(a[i]%2!=0)
			{
				a[i]=0;
				break;
			}
			//找到第一个奇数值,并将其赋值给p 
		}
		for(int i=1;i<=n;i++)
		{
			ans+=a[i];//统计最大花瓣数 
        	cout<<ans;
   		}
   	}
    return 0;
} 
 

总结

模拟

文章来源:https://blog.csdn.net/balbalbalabl/article/details/135049648
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。