您的位置:首页 > 编程语言 > C语言/C++

day(1)

2016-03-29 21:14 344 查看

题目描述:C++任意输入一个整数n,再把它的各位数字次序打乱重新组合一个新的整数,使其值最大

思路:(1) 先把n拆分放到数组中

            (2) 对数组中的元素排序(从大到小)

             (3) 对应相加

具体代码实现:

// sum.cpp : C++任意输入一个整数,再把它的各位数字次序打乱重新组合一个新的整数,使其值最大
#include "stdafx.h"
#include<iostream>
using namespace std;
int Sum(int n){
 int a[10]={0};
 int i=0;
 int sum=0;
 while(n)
 {
  a[i]=n%10;
  n=n/10;
  i++;
 }
 int k=i;
 for(i=0;i<k;++i)
 {
  for(int j=i+1;j<k;++j)
  {
   if(a[i]<a[j])
   {
    int temp=a[i];
    a[i]=a[j];
    a[j]=temp;
   }
  }
 }
 for(i=0;i<k;i++)
 {
  sum=sum*10+a[i];
 }
 return sum;
}
int _tmain(int argc, _TCHAR* argv[])
{
 int n=0;
 cout << "请输入整数n:" ;
 cin >> n;
 cout << Sum(n) << endl;
 return 0;
}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ c 算法