| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3162 人关注过本帖, 2 人收藏
标题:发个小题目来娱乐下,大家有空的,一起来讨论下,然后贴上你的代码来。。。
取消只看楼主 加入收藏
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
结帖率:100%
收藏(2)
已结贴  问题点数:50 回复次数:14 
发个小题目来娱乐下,大家有空的,一起来讨论下,然后贴上你的代码来。。。
【问题描述】
第二节数学课上,老师在黑板上随意写了N个正整数。要求同学们将这N个正整数连成一排,组成一个的多位数,看那个同学组成的数最大。如:
 n=3, 3个正整数 13、312、343。连成最大的正整数为: 34331213。
小A第二次找到了你,请你帮他写程序解决这个问题。
【输入】
第一行: N(N<=1000)
一下共N行,每一行一个正整数,每个数不超过1,000,000,000。
【输出】
一个数,N个数练成的最大数字。
【输入输出样例】
输入:
3
13
312
343
输出:
34331213
搜索更多相关主题的帖子: 代码 娱乐 
2010-09-03 00:32
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
看来这个分好像今天给不出去了。。。。。。

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-09-03 18:50
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
回复 7楼 maotai
用你的程序,我的输入:
5
564
55
56
566
560
输出为:
5665645605655

显然结果不是最大了!
-------------------------------------------
这个问题当成字符串排序问题写代码,思路是正确的,但是排序的依据仅仅依靠strcmp字典,是没办法满足这个问题的要求吧??

[ 本帖最后由 jack10141 于 2010-9-3 22:52 编辑 ]

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-09-03 21:51
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
回复 10楼 maotai
测试结果:
输入:
3
56
56565
560
输出:
5656556560
是否正确,你分析呢??
正确应该为:
5656565560
但是你的程序没给出这样的结果!!!

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-09-04 20:31
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
回复 11楼 Windy0Winll
你的程序,我初步看了下,输入的思路好像有点不清晰呢,运行没有得到结果!不知道你的运行结果如何?你输入什么测试数据?可以用我的数据测试下!!

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-09-04 20:40
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
回复 13楼 jack10141
感兴趣的朋友注意,形如以下形式的数,在排序比较的时候应该是相等的关系,才符合本问题的逻辑:
第一组:
5 55 5555 5555555555.............
第二组:
56 5656 56565656 ............
第三组:
314 314314314 314314314314314............   
以此类推
(也就是说,以上三组中的数同一组的数排到一起,前后次序不会影响接龙结果的大小)

[ 本帖最后由 jack10141 于 2010-9-4 20:54 编辑 ]

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-09-04 20:51
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
回复 17楼 御坂美琴
这个题目我也没标准答案,只是我自己在一个地方看到的题目,感觉有点意思,就给大家贴出来了,呵呵。。。

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-09-04 21:57
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
回复 18楼 maotai
这组数据,你测试下:
输入:
3
314
3143
31431
你的程序输出:
314314331431

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-09-04 22:13
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
以下是引用御坂美琴在2010-9-4 21:23:51的发言:

应该到了说答案的时间了吧?我去写个代码,御坂说
期待你的代码。。。

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-09-04 22:17
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
回复 23楼 御坂美琴
拜读中。。。
----------------------------------------------------
你的程序的确是正解,也理解了你的关键解题逻辑了,呵呵 学习了!!
----------------------------------------------------
分数不是问题,我在这里也贴出我的代码,大家帮忙测试下,看有疏漏没??
(我用递归实现比较,有些笨...并且主函数也懒得写,借用了别人的)
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int NUM_comp(char *q,char *p)
{
   int i=0;
   while(*(q+i) != '\0' && *(p+i) != '\0' && *(q+i) == *(p+i))i++;
   if( *(q+i) != '\0' && *(p+i) != '\0' && *(q+i) != *(p+i) )
      return (-(*(q+i)-*(p+i)));
   if( *(q+i) == '\0' && *(p+i) != '\0' )
      return NUM_comp((char *)q, (char *)(p+i));
   if( *(q+i) != '\0' && *(p+i) == '\0' )
      return NUM_comp((char *)(q+i),(char *)p);
   if( *(q+i) == '\0' && *(p+i) == '\0' )
      return 0;
}

int main()
{
    int n, i;
    char s[1000][11];
    while (scanf("%d", &n) != EOF)
    {
        for (i = 0; i < n; ++i) scanf("%s", s[i]);
        qsort(s, n, sizeof(s[0]), NUM_comp);
        for (i = 0; i < n; ++i) printf("%s ", s[i]);
    }
    return 0;
}

PS:为了使结果具有直观的可读性,我在输出的每个串尾加了个空白符,方便大家判断结果的正确与否!

[ 本帖最后由 jack10141 于 2010-9-4 23:29 编辑 ]

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-09-04 22:59
快速回复:发个小题目来娱乐下,大家有空的,一起来讨论下,然后贴上你的代码来。 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021570 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved