| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4077 人关注过本帖
标题:悬赏千金求一算法
只看楼主 加入收藏
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
 问题点数:0 回复次数:56 
悬赏千金求一算法

这个题本来发在数据结构版面, 我也做出来了, 但我觉得有点投机取巧, 不知各位高手有没有什么好方法
题目如下
用c语言排列数据
第一列:
看一个排数列
1 1 2 2 3 3
然后排成结果是:
3 1 2 1 3 2

第二列:
看第二列
1 1 2 2 3 3 4 4
然后排成结果是:
4 1 3 1 2 4 3 2

其规则是在两个"1"中夹着一个数,两个“2”中夹着两个数,两个“3”中夹着三个数,两个“4”中夹着四个数。
即对照第二列:
“1”中是 1 3 1
“2”中是 2 4 3 2
“3”中是 3 1 2 4 3
“4”中是 4 1 3 1 2 4

最后求数列
1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 按以上的规则排列,得出结果是???

相关帖子连接
http://www.bc-cn.net/bbs/dispbbs.asp?boardID=179&ID=65777&page=1


7天内结帖, 总金额1000g

[此贴子已经被作者于2006-5-20 19:03:00编辑过]

搜索更多相关主题的帖子: 算法 千金 悬赏 
2006-05-20 18:16
bob7789
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2006-4-10
收藏
得分:0 
2006-05-20 19:43
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
楼主,也许您该出万金。。。。。。
这道题,晚上我是想不出来了,回去再想想,

对不礼貌的女生收钱......
2006-05-20 20:22
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 

万金,我基本上不灌水,哪有那么多钱啊.......
这题答案是2 3 8 2 7 3 6 1 5 1 4 8 7 6 5 4
但是要找规律, 好象很困难,楼顶的连接里面有我的方法,但只是方法而已,很难应用到程序上

我的征途是星辰大海
2006-05-20 20:59
龙轩v亚风
Rank: 1
等 级:新手上路
威 望:1
帖 子:1073
专家分:0
注 册:2006-4-20
收藏
得分:0 
这个题用指针做做看 也许可以做出来的吧!

我是菜蛋 呵呵 提个建议

至于怎么做 还的好好想想

狂风扫落叶,扫把都失业!拍卖QQ:559372
2006-05-20 21:22
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 

你只要算法对吧...哈哈..

本人冒着生命危险.经过N久时间的努力..终于小有成就!

超笨算法..穷举法..哈哈..

事实证明..程序是绝对可以实现的..

只是在于方法的简洁..

我想 老K,feng 等各位斑竹 一定有更好的方法..期待中...

下面是代码:

main()
{
int m[6]={1,1,2,2,3,3},n[6];

int x,y,z,a,b,c,i,j=0,k;
for(x=0;x<6;x++)
for (y=0;y<6;y++)
for (z=0;z<6;z++)
for (a=0;a<6;a++)
for (b=0;b<6;b++)
for (c=0;c<6;c++)
{ if(x!=y&&x!=z&&x!=a&&x!=b&&x!=c&&y!=z&&y!=a&&y!=b&&y!=c&&z!=a&&z!=b&&z!=c&&a!=b&&a!=c&&b!=c)
{for(i=0;i<6;i++)
n[i]=0;
n[0]=m[x];
n[1]=m[y];
n[2]=m[z];
n[3]=m[a];
n[4]=m[b];
n[5]=m[c];
j=0;
for(i=0;i<6;i++)
{ k=i+1+n[i];
if(k>=6) break;
if(n[k]==n[i])
j++;
if(j==3)
{for(i=0;i<6;i++)
printf("%d",n[i]);
printf("\n");
getch();
return;
}

}

}
}

}

先用 112233 做例子.当然 到8也能做出来..只是相当的麻烦.
如果 穷举法能改的简洁.此程序也就能相当简洁..
不过..你只要方法嘛..嘿嘿


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-05-20 22:23
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
以下是引用starrysky在2006-5-20 20:59:00的发言:
这题答案是2 3 8 2 7 3 6 1 5 1 4 8 7 6 5 4

到8的答案肯定不会就这一个..
我上面的程序改改的话可以全部输出..
我懒.所以就输出一个了.


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-05-20 22:28
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 
我说要的是好方法啊
我就是不想要超苯的穷举法才开这个帖子的, 稍微化简一步也好啊
不过, 辛苦了啊

我的征途是星辰大海
2006-05-20 22:37
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 

但是要找规律, 好象很困难,楼顶的连接里面有我的方法,但只是方法而已,很难应用到程序上

汗...你说的应用程序很难..我以为....

早知道白费就不写啦..

奖金也没有~~

哈哈..那你等斑竹们来帮你搞搞吧...


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-05-20 22:42
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 
奖金?
如果你要我也可以给你些
我这个人没什么金钱观念,白送也可以,结帖的时候一起发吧,

我的征途是星辰大海
2006-05-20 22:47
快速回复:悬赏千金求一算法
数据加载中...
 
   



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

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