问题标题: 求大神帮忙看一下酷町堂1769 数字之和我拿错了?(10分)

0
1
已解决
王梓澳
王梓澳
中级光能
中级光能

代码如下:

#include <iostream>
#include <string>
#include <sstream>
using namespace std;
void qsort(int sz[10001],int l,int r)
{
    int i,j,mid=0,p=0;
    i=l;j=r;
    mid=sz[(l+r)/2];
    while(i<=j)
    {
        while(sz[i]<mid) i++;
        while(sz[j]>mid) j--;
        if(i<=j)
        {
            swap(sz[i],sz[j]);
            i++;j--;
        }
    }
    if(i<r) qsort(sz,i,r);
    if(l<j) qsort(sz,l,j);
}
int main ()
{
    int cd,n,s[1001];
    string a;
    stringstream b;
    cin>>n;
    b<<n;
    b>>a;
    b.clear();
    cd=a.size();
    for (int i=0;i<=cd-1;i++)
    {
        b<<a[i];
        b>>s[i];
        b.clear();
    }
    qsort(s,0,n-1);
    cout<<s[1]+s[cd-1];
    return 0;
}

http://judge.codingtang.com/problem/1769/


0
已采纳
张睿杰
张睿杰
初级天翼
初级天翼
int qsort(int l,int r)
{
    int zb=l,yb=r,mid=a[(l+r)/2];
    while(zb<=yb)
    {
        while(a[zb]<mid) zb++;
        while(a[yb]>mid) yb--;
        if(zb<=yb)
        {
            swap(a[zb],a[yb]);
            zb++;yb--;
        }
    }
    if(zb<r) qsort(zb,r);
    if(l<yb) qsort(l,yb);
} 

快排加主程序

int n,ys,i=0,he;
    cin>>n;
    if(n==0)
    {
        cout<<"0"<<endl;
        return 0;
    } 
    while(n>0)
    {
        ys=n%10;
        a[i]=ys;
        n/=10;
        i++;
    }
    qsort(0,i-1);
    he=a[0]+a[i-1];
    cout<<he<<endl;

 

0
王祥润
王祥润
新手守护
新手守护

 你的思想太复杂了,只要主函数就够了。

  核心代码如下:

  if(输入变量==0)

  cout<<0;

 while(输入变量!=0)

{

中间变量=输入变量%10;

然后进行最大最小判断。

}

cout<<最大+最小;

return 0;

0
马佳滢
马佳滢
新手天翼
新手天翼

王梓澳:

1.不需要函数。

核心:

判断(n等于(注意:不是赋值)0)
    输出<<0;
    否则
    {
        当循环(n不等于0) 
        {
            g赋值n求余10;
            判断(g小于min)
            min赋值g;
            if(g大于max)
            max赋值g;
            n赋值n除以10;
        }
        输出<<max加min;
    }

 

0
0
鲁天一
鲁天一
初级光能
初级光能

  你的思想太复杂了,只要主函数就够了。

  核心代码如下:

  if(输入变量==0)

  cout<<0;

 while(输入变量!=0)

{

中间变量=输入变量%10;

然后进行最大最小判断。

}

cout<<最大+最小;

return 0;

我要回答