| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1582 人关注过本帖
标题:这个题目怎么做
只看楼主 加入收藏
wdtk
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-10-10
收藏
得分:0 

给个简单的思路:
1.把要重组的n个数字 放入vector 中,最好以string 存储,
2.比较每个数的第一个"字符",
3.重组.

2007-10-13 13:53
风动
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2007-6-25
收藏
得分:0 

建议使用二维数组比较方便!行用于存一串字符,每列存一个字符.比较时用快排,或基数排,当然冒泡也行!


打框架,做需求分析---敲代码的前提
2007-10-15 22:18
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
得分:0 

don't know why my code cannot pass the online judge at the website

/*---------------------------------------------------------------------------
File name: 最大的多位整数.c
Author: HJin (email: fish_sea_bird [at] yahoo [dot] com )
Created on: 10/15/2007 09:39:25
Environment: WinXPSP2 En Pro + VS2005 v8.0.50727.762

Problem statement:
---------------------------------------------------------------------------
http://mail.bashu.cn:8080/JudgeOnline/showproblem?problem_id=1276

【1998年提高组2】最大的多位整数

Time Limit:1000MS Memory Limit:65536K
Total Submit:88 Accepted:46

Description

设有n个正整数,将他们连接成一排,组成一个最大的多位整数.
例如:n=3时,3个整数13,312,343,连成的最大整数为:34331213
又如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613

Input

程序输入:N
N个数


Output

程序输出:连接成的多位数

Sample Input


3
13 312 343
4
1 2 3 4
4
7 13 4 246
3
9 98 987
3
9 8 0
2
0000000000001 002


Sample Output


34331213

Source

xinyue
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define N 100000
char s[N];
char a[10000][N];

int cmp(const void* a, const void* b)
{
char *sa = (char*)a, *sb = (char*)b;
int na =strlen(sa), nb = strlen(b), i, n;

n = na<nb ? na : nb;
for(i=0; i<n; ++i)
{
if(sa[i]<sb[i])
{
return 1;
}
if(sa[i]>sb[i])
{
return -1;
}
}

return na-nb;
}

int main()
{
int n, i, j;

while(scanf("%d", &n)!=EOF)
{
getchar();

for(i=0; i<n; ++i)
{
scanf("%s", s);

j=0;
while(s[j]=='0')
++j;

strcpy(a[i], s+j);
}

qsort(a, n, N, cmp);

for(i=0; i<n; ++i)
printf("%s", a[i]);
printf("\n");
}

return 0;
}


I am working on a system which has no Chinese input. Please don\'t blame me for typing English.
2007-10-16 01:39
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
得分:0 
found the bug:

try

2
135 13

I am sure you can modify my program and remove the bug in "cmp".

I am working on a system which has no Chinese input. Please don\'t blame me for typing English.
2007-10-16 01:58
神雕大侠
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-5-18
收藏
得分:0 
回复:(远去的列车)写了个程序,按照我在二楼的思路...
我们还没有学过类,现在还不会用,你能不能不用类写一个。谢谢!
2007-10-16 12:46
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 
回复:(HJin)found the bug:try2135 13I am sure yo...

最大比较次数n并不是最大的位数,而是两个位数的最小公倍数

13 131 n1=2,n2=3, n=6, 实际比较4次就出结果
44 444 n1=2,n2=3, n=6, 实际比较6次才出结果


C++学习
2007-10-16 13:10
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 
回复:(神雕大侠)回复:(远去的列车)写了个程序,...
那按照Hjin的程序改改就行了

C++学习
2007-10-16 13:11
hhei
Rank: 2
等 级:论坛游民
帖 子:36
专家分:27
注 册:2007-10-14
收藏
得分:0 
10楼这位兄弟好自信,这个程序编译都没通过。在main()函数中,Number b[n] 这个数组声明有问题。。汗......

2007-10-16 13:12
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 
回复:(hhei)10楼这位兄弟好自信,这个程序编译都没...
请问你用什么编译器?

C++学习
2007-10-16 13:26
dart
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-9-2
收藏
得分:0 

应该很好做得,呵呵/////

2007-10-16 13:35
快速回复:这个题目怎么做
数据加载中...
 
   



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

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