设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613
时间: 2023-04-29 14:02:39 浏览: 145
设有n个正整数,将他们连接成一排,组成一个最大的多位整数
这道题目要求我们将给定的n个正整数联接成一个最大的多位整数。我们可以先将这些正整数转换成字符串,然后按照一定的规则进行排序,最后将它们依次拼接起来即可。
具体来说,我们可以定义一个比较函数,用来比较两个字符串s1和s2的大小。如果s1+s2>s2+s1,那么s1就应该排在s2的前面,否则s2应该排在s1的前面。这个比较函数的意义在于,如果s1+s2>s2+s1,那么将s1和s2拼接起来得到的数肯定比将s2和s1拼接起来得到的数大,因此s1应该排在s2的前面。
有了这个比较函数,我们就可以使用STL中的sort函数对这些字符串进行排序,然后将它们依次拼接起来即可得到最大的多位整数。
下面是C++的代码实现:
阅读全文