注册 登录
编程论坛 C++教室

希望哪位朋友帮忙指点一下

tandyo 发布于 2009-11-09 20:05, 504 次点击
问题:“从键盘输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按左右次序组成一个新的正整数。对给定的N和S,寻找一种删数规则使得剩下的数字组成的新数最小。”
方法:
一种方法是以字符串的方式处理输入N(这个我会);
另一种方法是以整型的形式处理它,包括N中带0的删数和N中不带0的删数。
我不知道如何处理N中带0的删数,那位朋友能够指点,谢谢!

[ 本帖最后由 tandyo 于 2009-11-9 20:24 编辑 ]
4 回复
#2
flyingcloude2009-11-09 22:03
删除规则为:
从左到右扫描,第一次扫到比下一个大的数字则删除之。
例如:23768.......
扫描过程为:
2<3,不删除2
3<5,不删除3
7>6,删除7,即第一次应该删除7,得到:2368......
重复这个过程S次,得到结果。

出现0的话,如200012....
2>0,但还是不删。

此题用贪心法即可
#3
flyingcloude2009-11-09 22:04
既然是高精度,那么就应该用你自己说的第一种方法读入再进行处理。
#4
wghost2009-11-10 13:56
应该用第一种方法!
#5
tandyo2009-11-12 12:23
恩,我也觉得第一种方法会更好些,谢谢啦
1