| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 874 人关注过本帖
标题:帮忙看一看有没有出错的地方,总是wa
只看楼主 加入收藏
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:0 
另外
程序代码:
if(k==n)
        {
            printf("0\n");
            return 0;
        }
改成
程序代码:
if(k==n)
        {
            printf("0\n");
            continue;
        }


********多贴代码,少说空话*******
2011-05-08 22:40
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:0 
I cannot find where is the bug,sorry

********多贴代码,少说空话*******
2011-05-08 22:59
fane
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-5-8
收藏
得分:0 
数字一共有n位,需要删除k位(1<=k<=n).
思路:
    按位比较,只要出现前面数字大则删此位,后面的数整体向前移动一位,并且结束此次循环;一共循环k次,最后所得的前n-k-1位输出即为所求。
例如:n=5421873;k=3,第一位5比第二位4大,则整体前进一位n=421873,结束此次循环。循环3次取结果的前n-k-1=3位共4个数字即为所求。
2011-05-09 00:18
枫叶无痕
Rank: 2
等 级:论坛游民
帖 子:80
专家分:30
注 册:2011-2-10
收藏
得分:0 
回复 13楼 fane
好像不明白,你这个不能输出删除k位后是n-k位中是最小的
2011-05-09 09:45
fane
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-5-8
收藏
得分:0 
回复 14楼 枫叶无痕i
能够保证。位越高的数字作用越大,则删除后就能保证所求最小。例如142578,删除k=3;第一次:12578;第二次:1278.第三次:1278,但是取钱6-3=3位即:127。你可以随便写个数字试下。这个思路其实和我们自己心算最小值是一样的,你不可能是随便删除3位再比较大小。
2011-05-09 10:15
fane
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-5-8
收藏
得分:0 
回复 14楼 枫叶无痕
当然这个算法有个问题,就是如果是000345的话,你不能输出345只能输出000,这个需要编程时加判断条件,你可以参考。
2011-05-09 10:26
枫叶无痕
Rank: 2
等 级:论坛游民
帖 子:80
专家分:30
注 册:2011-2-10
收藏
得分:0 
回复 16楼 fane
错了,按你的例子,最小应该是124,而不是127
2011-05-09 12:03
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:0 
8楼,9楼有OJ地址,AC的代码比一通汉字更有话语权

********多贴代码,少说空话*******
2011-05-09 12:12
fane
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-5-8
收藏
得分:0 
回复 17楼 枫叶无痕
没看明白,我没有换位,怎么可能4跑到2前面对于14278?
2011-05-09 12:14
枫叶无痕
Rank: 2
等 级:论坛游民
帖 子:80
专家分:30
注 册:2011-2-10
收藏
得分:0 
回复 19楼 fane
但是主要要换位,求最小值的
2011-05-09 12:34
快速回复:帮忙看一看有没有出错的地方,总是wa
数据加载中...
 
   



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

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