一 问题描述
设有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];
...[ 查看全文 ]