求最大数

哥不再淡定无悔

哥不再淡定无悔

2016-02-19 14:03

下面图老师小编要向大家介绍下求最大数,看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!
一 问题描述
  设有n个正整数(n=20),将它们联成一排,组成一个最大的多位数。程序输入:n,程序输出:n个数连接成的多位数。二 问题分析
  可以将问题这样变化一下:
  比如我输入的是  123 2 33 1006 12这样几个数字
  我先找出最大的数字的位数为四位,再将所有的数字变成四位数:
  1230 2000 3300 1006 1200 
   然后进行排序 
  3300 2000 1230 1200 1006
   这样将后面加上的0去掉的序列不就是最大数字吗?
  于是最大数字就是
  332123121006
  因为以下程序用的INT的类型所以只在-32728~32727间有效,假如想要更大范围须改成long类型 三 C程序#define MAXSIZE 100
  #includestdio.h
  int max(int a[],int i) /*判定出最大数字的位数*/
  {int m;
   int size();
   m=a[i];
    for(;i=0;i--)
    if(a[i]m)
    m=a[i];
   return(size(m));
  }int size(int interger)  /*判定出这个要组合数字的位数*/
  {
     if(interger10000)
       return 5;
    else if(interger1000)
      return 4;
    else if(interger100)
     return 3;
   else if(interger10)
     return 2;
   else
    return 1;
  }int change(int i ,int maxsize)  /*将本数字变成和最大数相同位数的数字*/
  {
    int size();
    switch(maxsize-size(i))
      {case 0:break;
       case 1:i=i*10;break;
       case 2:i=i*100;break;
       case 3:i=i*1000;break;
       case 4:i=i*10000;break;
       default:printf("error");
      }
    return i;
  }main()
  {
   int a[MAXSIZE],b[MAXSIZE],i,j,count,temp,s;
    printf("Please input some intergers and input -1 to finish");
   for(i=0;iMAXSIZE;i++)
     {
        scanf("%d",&a[i]);
        if(a[i]0)
           break;
     }
  count=i-1;
  s=max(a,count);
  for(i=count;i=0;i--)
      b[i]=change(a[i],s);
  for(j=0;j=count-1;j++)  /*用冒泡法对变化数排序,其实本质是在对原组合数字进行排序*/
    for(i=0;i=count-1;i++)
     {
         if(b[i]b[i+1])
           {
              temp=a[i];
              a[i]=a[i+1];
              a[i+1]=temp;
       temp=b[i];
              b[i]=b[i+1];
      b[i+1]=temp;
           }
     }
  printf("max interger =");
  for(i=0;i=count;i++)
     printf("%d",a[i]);
  }
   
   四 实验结果输入:56 2 1        输出:5621输入:21 35 2      输出:35221
  
展开更多 50%)
分享

猜你喜欢

求最大数

编程语言 网络编程
求最大数

《暗黑破坏神3》物品后缀最大数值表一览

暗黑破坏神3
《暗黑破坏神3》物品后缀最大数值表一览

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

一个求最大值与最小值的函数

ASP
一个求最大值与最小值的函数

什么是大数据?

电脑网络
什么是大数据?

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

MYSQL大数据导入

编程语言 网络编程
MYSQL大数据导入

求合体攻略

电脑网络
求合体攻略

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

7.9 ASP 编程中 20 个非常有用的例子

7.9 ASP 编程中 20 个非常有用的例子

PowerPoint2003中WMP播放器控件的使用

PowerPoint2003中WMP播放器控件的使用
下拉加载更多内容 ↓