A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白痴程序猿 初级黑马   /  2013-7-28 15:56  /  1000 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-7-29 11:12 编辑

一道算法题,给出一个数字,如: 345678,写一段程序把它转换成大写汉字,也就是 三十四万五千六百七十八.我说我不会,他说效率最高的一种办法是除以10,但我还是不明白.求指教.

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3

查看全部评分

3 个回复

倒序浏览
由于这是一道面试题,就不给楼主写代码了。只给楼主讲一下我的思路吧。

这道题可以参考毕老师基础视频的前几天里的一个2进制转换的代码来写,也就是查表法,使用创建出来一张汉字大写的对照表,以及单位表,用指针变量进行控制。
而所谓的高效是除以10,个人认为是先%10在除以10,%10会取到当前数字的最后一位,而除以是会移除当前数字的最后一位。也就是说通过循环来分别对每次取出的最后一位进行查表转换操作。而转换以后,将这个位数移除,使它的前一位变成当前的最后一位。

只是一些思路,希望可以帮到楼主。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马