广州做网站网络公司,关东建设有限公司网站,网站怎么做白色字,网站建设 设计业务范围问题#xff1a;1581. 马里奥的银币1
类型#xff1a;数组找数 题目描述#xff1a;
马里奥有很多银币#xff0c;有一天他得到了一张魔法卡#xff0c;只要使用这张魔法卡#xff0c;就可以使得他的银币里面的最大的银币金额变得更大。如果他最大的银币是偶数的金额1581. 马里奥的银币1
类型数组找数 题目描述
马里奥有很多银币有一天他得到了一张魔法卡只要使用这张魔法卡就可以使得他的银币里面的最大的银币金额变得更大。如果他最大的银币是偶数的金额可以直接翻倍如果他最大的银币是奇数的金额可以使得银币金额加 1 。 比如假设马里奥存有的银币金额分别为 5 7 8 1 4 那么最大的银币面值为 8 只要使用魔法卡银币的金额就会变为5 7 16 1 4 再比如假设马里奥存有的银币金额分别为 5 7 9 1 4 那么最大的银币面值为 9 只要使用魔法卡银币的金额就会变为 5 7 10 1 4 已知马里奥众多的银币中面额最大的银币只有 1 个请你求出马里奥使用魔法卡之后他的银币金额分别是多少
输入
第一行是一个整数 n 代表马里奥有 n 个银币。n≤1000
第二行有 n 个整数用空格隔开代表马里奥每个银币的金额。
输出
一行有 n 个整数代表使用过魔法卡之后马里奥的银币的金额分别是多少
样例
输入
5
5 7 8 1 4输出
5 7 16 1 4完整代码如下
#includebits/stdc.h
using namespace std;
int a[1010];
int main(){//一、分析问题//已知有 n 个银币。n≤1000//未知使用过魔法卡之后银币的金额分别是多少//关系: 如果他最大的银币是偶数的金额可以直接翻倍如果他最大的银币是奇数的金额可以使得银币金额加 1 。//二、定义变量已知、未知、关系int n,mmaxINT_MIN,imax; //三、输入已知cinn;for(int i0;in;i){cina[i];if(a[i]mmax){mmaxa[i];imaxi;}}//四、根据关系计算if(mmax%20){a[imax]a[imax];}else{a[imax]1;}//五、输出未知 for(int i0;in;i){couta[i] ;}return 0;
}