最近在QQ上收到以前一个师弟的信息,说是老师给他们出了一个题,即输入人民币金额,然后将输入的金额转换为汉字。例如输入1234,就输出一千二百三十四元。师弟说他想了很久,没有想出来,让我帮一下他忙。我心想这题应该很简单,半个小时就可以搞定了,哪知一做才发现这题里面还是真有一些玄机,最后搞了两个多小时才做出来,真是十分的惭愧呀(-_-)现将代码和思路放上来供各位共赏,如果那位大牛有更好的思路的话,不吝赐教。
要正确、完整的做出这个问题,最主要是要注意三个问题。首先是要对输入进行一定程度的过滤,比如用户输入了非数字的字符等等;其次就是要注意可能输入浮点数,如输入1234.56,则应该输出一千二百三十四元五角六分。最后就是要注意对“零”的处理,如输入10005,则输出一万零五,而不是一万零零零五。在分析完这三个问题后,我们就可以得出整个程序的思路。
首先输入人民币金额并检测用户的输入是否合理,然后分解输入金额的整数部分和小数部分进行分别处理,最后将两部分合并起来输出。
完整源代码如下: