12 条题解

  • 9
    @ 2022-8-12 19:18:25

    做完了题,看看MOD的题解,又是,-1个赞,我就不加了哈,来吧,看看思路

    1. 首先要先求出 max 再遍历列表,所以要用到数组,可以定义 1001 个元素 (1000+1因为这样就可以索引为 1 啦~)
    2. 输入 n 然后执行 n 次
    3. 求出 max 以后,再遍历列表,再再判断如果 a[i] 是否等于max,再再再判断如果可以被 2 整除,就翻倍,否则,你懂得(+1)

    老样子,你懂思路了吗?先点个赞吧,上代码~

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n, max = 0, a[1001];
        cin >> n;
        for (int i = 1; i <= n; i++)
        {
            cin >> a[i];
            if (max < a[i]) max = a[i];
        }
        for (int i = 1; i <= n; i++)
        {
            if (max == a[i] && max % 2 == 0) cout << max * 2 << " ";
            else if (max == a[i] && max % 2 == 1) cout << max + 1 << " ";
            else cout << a[i] << " ";
        }
        return 0;
    }
    
    • 5
      @ 2022-12-24 23:21:22

      全网最短的题解来喽!

      #include <iostream>
      using namespace std;
      int main()
      {
      	int a[1005], n, ma = 0;
      	cin >> n;
      	for (int i = 0; i < n; i++) cin >> a[i];
      	for (int i = 1; i < n; i++) 
              if (a[i] > a[ma])
      			ma = i;
      	if (a[ma] % 2 == 0) a[ma] *= 2;
          else a[ma] += 1;
      	for (int i = 0; i < n; i++) cout << a[i] << " ";
      	return 0;
      }
      

      点赞不迷路!

      • 1
        @ 2024-3-5 22:00:32

        这题通过率差不多三分之一,其实并不难,我来说一下我思路

        首先,老样子,定义和遍历数组,这里直接从1开始,方便查找

        其次,定义一个最大值变量,初始化为0,再次遍历数组,找出最大值

        然后,写俩if语句,判断最大值奇偶,奇数就在原基础上+1,偶数就在原基础上x2

        最后,替换插入直接输出就行

        下附AC代码image

        include<bits/stdc++.h>
        using namespace std;
        int n, homo[1145], maxx = 0, coat;
        int main()
        {
            cin >> n;
            for(int i = 1; i <= n; i ++)
            {
                cin >> homo[i];
            }
            for(int i = 1; i <= n; i ++)
            {
                if(homo[i] > maxx)
                {
                    maxx = homo[i];
                    coat = i;
                }
            }
            if(maxx % 2 == 0)
            {
                maxx *= 2;
            }
            if(maxx % 2 != 0)
            {
                maxx += 1;
            }
            for(int i = 1; i <= n; i ++)
            {
                if(i + 1 == coat)
                {
                    homo[i + 1] = maxx;
                }
                cout << homo[i] << " ";
            }
            return 0;
        }
        

        点个赞吧,点赞的都是一个一个帅哥啊啊啊啊~

        • 1
          @ 2024-1-30 16:33:46

          `

          #include <bits/stdc++.h>
          using namespace std;
          int main()
          {
              int n, max = 0, a[1001];
              cin >> n;
              for (int i = 1; i <= n; i++)
              {
                  cin >> a[i];
                  if (max < a[i]) max = a[i];
              }
              for (int i = 1; i <= n; i++)
              {
                  if (max == a[i] && max % 2 == 0) cout << max * 2 << " ";
                  else if (max == a[i] && max % 2 == 1) cout << max + 1 << " ";
                  else cout << a[i] << " ";
              }
              return 0;
          }
          
          • 1
            @ 2024-1-30 16:33:07
            #include <bits/stdc++.h>
            using namespace std;
            int main()
            {
                int n, max = 0, a[1001];
                cin >> n;
                for (int i = 1; i <= n; i++)
                {
                    cin >> a[i];
                    if (max < a[i]) max = a[i];
                }
                for (int i = 1; i <= n; i++)
                {
                    if (max == a[i] && max % 2 == 0) cout << max * 2 << " ";
                    else if (max == a[i] && max % 2 == 1) cout << max + 1 << " ";
                    else cout << a[i] << " ";
                }
                return 0;
            }
            
            
            • 0
              @ 2023-9-24 10:43:05
              #include <bits/stdc++.h>
              using namespace std;
              int n, a[10005], maxn = -1;
              int main()
              {
                  cin >> n;
                  for (int i = 1; i <= n; i++)
                  {
                      cin >> a[i];
                      maxn = max(a[i], maxn);
                  }
                  for (int i = 1; i <= n; i++)
                  {
                      if (a[i] == maxn && a[i] % 2 == 0)
                          a[i] *= 2;
                      else if (a[i] == maxn && a[i] % 2 == 1)
                          a[i] += 1;
                  }
                  for (int i = 1; i <= n; i++)
                      cout << a[i] << " ";
                  return 0;
              }
              
              • 0
                @ 2023-7-6 7:47:52

                思路:

                做这道题主要分两步:

                第一步:找出最大值

                可以先设一个变量max = 0,因为题目没给银币面额最大是多少,保险起见,这里用long long类型的变量,然后遍历整个数组,如果有比max大的,就把max设为这个值

                long long max = 0;
                for(int i = 0;i < n;i++)
                {
                     if(max < money[i])
                         max = money[i];
                }
                

                第二步:输出 还是先遍历数组,将每个数据与最大值作比较,如果不是最大值,直接输出(记得加空格),如果是最大值,再判断是奇数还是偶数,是奇数输出最大值+1,是偶数输出最大值*2(不要忘记空格)

                for (int i = 0;i < n;i++)
                {
                     if (max == money[i])
                     {
                         if (max % 2 == 0)
                             cout << max * 2 << ' ';
                         else
                             cout << max + 1 << ' ';
                     }
                     else
                         cout << money[i] << ' ';
                }
                

                最后把上面两步整合一下,加上一些基本的东西,就是答案了

                #include <iostream>
                using namespace std;
                
                int main()
                {
                    int n;
                    cin >> n;
                    long long money[n];
                    for(int i = 0;i < n;i++)
                        cin >> money[i];
                    long long max = 0;
                    for(int i = 0;i < n;i++)
                    {
                        if(max < money[i])
                            max = money[i];
                    }
                    for (int i = 0;i < n;i++)
                    {
                        if (max == money[i])
                        {
                            if (max % 2 == 0)
                                cout << max * 2 << ' ';
                            else
                                cout << max + 1 << ' ';
                        }
                        else
                            cout << money[i] << ' ';
                    }
                    return 0;
                }
                
                • -2
                  @ 2022-8-19 14:41:02
                  首先输入,找出最大的
                  输出,根据奇偶性判断
                  #include <bits/stdc++.h>
                  using namespace std;
                  int main()
                  {
                      int a[1010],b,c,i,j,m=-10,n,x;
                      cin>>n;
                      for(i=1;i<=n;i++){
                          cin>>a[i];
                          if(a[i]>=m) m=a[i];
                      }
                      for(i=1;i<=n;i++){
                          if(a[i]==m) { if(m%2==0) cout<<m*2<<" "; else cout<<m+1<<" ";}
                          else cout<<a[i]<<" ";
                      }
                      return 0;
                  }
                  
                  • -5
                    @ 2022-8-20 10:51:09

                    1.这道题需要用数组,题目给的大小是<=1000,所以就可以把数组大小设为1000

                    2.找出最大数及其下标

                    3.处理最大数后按题目要求输出即可完美Accepted~


                    点赞支持亿下,上代码吧

                    #include<iostream>
                    #include<cstdio>
                    using namespace std;
                    int main(){
                    	int a[1000],max=0,n,maxi;
                    	cin>>n;
                    	for(int i=0;i<n;i++){
                    		cin>>a[i];
                    		if(a[i]>max){
                    			max=a[i];//找到最大数 
                    			maxi=i;//存储最大数的下标 
                    		}
                    	}
                    	for(int i=0;i<n;i++){
                    		if((max%2==0)&&(i==maxi)) cout<<a[i]*2<<" ";//找到最大数的下标,并处理输出 
                    		else if((max%2==1)&&(i==maxi)) cout<<a[i]+1<<" ";
                    		else cout<<a[i]<<" ";
                    	}
                    	return 0;
                    }
                    
                    • -5
                      @ 2022-5-23 20:32:58

                      1.先找到最大的金币

                      if(a[i]>m) 
                       	{
                       	 m=a[i];
                      	 t=i;//标记最大金额的下标
                      	}
                      

                      2.判断最大金额是偶数还是奇数,并更改

                      if(a[t]%2==0)
                      {
                         a[t]=a[t]*2;//偶数翻倍
                      } 
                      else
                      {
                         a[t]=a[t]+1;//奇数+1
                      } 
                      
                      • -7
                        @ 2022-8-19 20:19:33

                        直接上代码! 求赞求赞👍

                        #include <bits/stdc++.h> using namespace std; int main() { int n, max = 0, a[1001]; cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; if (max < a[i]) max = a[i]; } for (int i = 1; i <= n; i++) { if (max == a[i] && max % 2 == 0) cout << max * 2 << " "; else if (max == a[i] && max % 2 == 1) cout << max + 1 << " "; else cout << a[i] << " "; } return 0; }

                        • -7
                          @ 2022-6-12 20:10:07
                          首先呢,我定义一个max储存最大面额的金币,当然,
                          max=0。为了标记下标,我又弄了一个pos储存。
                          当m更改时让pos也更改就好了
                          废话不多说上第一部分的代码!!!!!
                          for (······)
                          {
                              if (······)
                              {
                                  max = a[i];
                                  pos = i;
                              }
                          }
                          然后改一下最大的数
                          废话不多说上第二部分的代码!!!!!
                          if (······)
                          {
                              a[pos] ······
                          }
                          else
                          {
                              ······
                          }
                          然后输出就可以了
                          要注意后面加一个<<" "
                          第五个题解,鸡汤来喽~~~~~
                          • 1

                          信息

                          ID
                          578
                          时间
                          1000ms
                          内存
                          128MiB
                          难度
                          6
                          标签
                          递交数
                          1545
                          已通过
                          498
                          上传者