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

现在给你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 14: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;
    }
     
    
    评论
    普通网友 2023-12-19 06:24

    谢谢

    回复
    普通网友 2023-12-19 06:24

    谢谢

    回复
    普通网友 2023-12-19 11:14

    ** 50分,请问这个代码还有没有问题__**

    回复
    展开全部6条评论
    编辑
    预览

    报告相同问题?

    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部