c++编程大师挑战赛-魔法棒

魔法棒

暂无标签

题目统计 全部提交

时间限制:C/C++ 1000MS,其他语言 2000MS

内存限制:C/C++ 256MB,其他语言 512MB

难度:简单

出题人:admin

描述

2、Master在给他的伙伴Sandy准备礼物。他有一个包含n个数的数列a,这个礼物就是数列中所有元素的乘积。Master想让这个乘积尽可能的大,他有一个魔法棒,可以使得其中任意一个数增大1,但是可惜的是这个魔法棒只能使用1次,聪明的你能帮助Master使用这个魔法棒,使得对于魔法棒改变后的新数列,Master能获得最大的乘积吗?

输入描述

第1行包含一个正整数n,表示这个数列包含的数的个数(1<= n <=9)

第2行包含n个数,表示该数列中的每一个数ai(0<= ai <=9),任意两个数之间用空格分割

输出描述

输出一行,表示使用魔法棒后,Master所能获得的最大乘积

用例输入 1

复制代码
4
2 2 1 2

用例输出 1

复制代码
16

思路:

我们仔细看,这里的n和ai是很小的,所以,我们只要用一种很笨很暴力的方法就能做出来了

我们放一个循环,每次给一个ai++,然后把n个数都乘起来,最后看那一次最大就好了


代码:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	long long n,ma=INT_MIN;//INT_MIN就是int能表示的最小值,也就是-2147483648左右
	cin>>n;//n个数
	long long a[n+10];
	for(int i=1;i<=n;i++){
		cin>>a[i];//读入n个数
	}
	for(int i=1;i<=n;i++){
		a[i]++;//实用魔法棒
		long long cj=1;//乘积
		for(int j=1;j<=n;++j){
			cj*=a[j];//都乘起来
		}
		if(cj>ma){//如果比之前的数大
			ma=cj;//那最大的就是cj
		}
		a[i]--;//要减回去,变成原来的数字
	}
	cout<<ma;//输出
	return 0;
}
相关推荐
FlightYe6 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
by209997 小时前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享
Rover Ramble8 小时前
C++ 用互斥锁实现读写锁
开发语言·c++
你怎么知道我是队长8 小时前
C++零基础入门第2周:数据类型、运算符与表达式完全指南(附20段可运行代码+避坑清单)
c++
say_fall8 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
雪落漂泊9 小时前
C++算法 滑动窗口篇(下)
开发语言·c++
你怎么知道我是队长12 小时前
C++零基础第3周:if/else、switch、for/while/do-while 控制流完全指南(附20段可运行代码+避坑清单)
java·开发语言·c++
青少儿编程课堂12 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:倍增法求最近公共祖先LCA解析
c++·python·算法·bfs·信息学竞赛
雷✘13 小时前
C++ 类与对象的初始化机制、成员访问边界与拷贝优化
java·网络·c++
努力实干13 小时前
简单工厂模式(Simple Factory Pattern)——C++
开发语言·c++·简单工厂模式