C++解题,排序,思路和源代码

现在给定了n个正整数,直接排序的话实在太乏味,算法大佬XZX说要不将每个正整数的每一位相加,然后根据每一位的和对所有的数按从小到大进行排序。注意,如果有多个数的位加和结果相同的话,那么按数本身的大小排序。比如有5个数:21 12 10 47 50,5个数的位相加结果分别为:3 3 1 11 5, 因此排序结果为:10 12 21 50 47 

输入

你这个排序会存在一些问题吧,比如21,12的结果是一样的,排序后怎么知道是21在前面,还是12在前面呢?

可以用链表,从头开始计算每一位相加的和,然后根据大小插入链表,插入时判断前后的数,如果是相同的,则根据数本身大小插入。最后遍历整个链表就行了

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632