普通网友 2023-12-16 22:06 采纳率: 0%
浏览 6

现在给你n个数字xi,请你分别选n个数字组成两个数,要求这两个数的差最大,并输出这个差。1<=n<=8,1<=xi<=9。

现在给你n个数字xi,请你分别选n个数字组成两个数,要求这两个数的差最大,并输出这个差。1<=n<=8,1<=xi<=9。

输入格式
第一行,一个数字n。
第二行,n个数字。

输出格式
一个整数

输入/输出例子1
输入:

3

2 4 1

输出:

297

样例解释
421-124=297


```c++
#include<bits/stdc++.h>
using namespace std;
int arr[1005],cnt[10000005],ans=0;
int main(){
    int n,id=0;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>arr[i];
        int x=arr[i];
        for(;x>0;x/=10)
            cnt[++id]=x%10;
    }
    sort(cnt+1,cnt+1+id);
    for(int i=id;i>=1;i--)
        ans=cnt[i];
    
    return 0;
}

```

  • 写回答

1条回答 默认 最新

  • 柯本 2023-12-16 22:48
    关注
    
    //#include<bits/stdc++.h> //不建议,对学习不利,换个平台就不能用了
    #include <iostream>
    #include <algorithm>
    using namespace std;
    //int arr[1005],cnt[10000005],ans=0;
    int arr[10]; //细看要求1<=n<=8,用10足够
    int main() //你的程序完全不对
    {
        int n;
        cin>>n;
        for(int i=0;i<n;i++) //C++要习惯下标从0开始
         cin>>arr[i];
        sort(arr,arr+n);
        int mx,mi;
        mx=mi=0;
        for(int i=0;i<n;i++) //简单的算法
          {
             mx=mx*10+arr[n-1-i];
             mi=mi*10+arr[i];
          }
        cout << mx-mi << endl;
        return 0;
    }
     
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月16日

悬赏问题

  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆
  • ¥15 arbotix没有/cmd_vel话题
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据