面试遇到的一个递归题目
来源:互联网 发布:js改变css display 编辑:程序博客网 时间:2024/05/21 03:16
题目要求:定义一个方法,参数1,int dollars,代表美元;参数2,int cents,代表美分。一美元为一百美分。
要求输入后转化为此格式:$22,234,234.34
我百度了一个方法,java.text包下有一个Decimalformat类,专门提供格式转换的,具体可以查找相关案例,两三行代码就可以搞定。但我觉得这么一个机试题,就这么两行,可能不是出题的本意,所以面试回来研究一下,想写一下自己的方法。
代码如下:
public class changeMoneyFormat {
public static void main(String[] args) {
moneyFormat(32232323,00);
}
public static void moneyFormat(int dollers, int cents){
String 前缀="";
String 拼接前缀="";
String 后缀=""+cents;
if(cents==0){//美分为0,后缀为00
后缀="00";
}if(cents>99||cents<0){//美分不能大于99或者小于0
System.out.println("美分范围为0-99之间");
return;
}
if(dollers==0){
拼接前缀="0";
}
if(dollers>=1){
//初始化前缀为金额转化的字符串
前缀=前缀+dollers;
doSomething(前缀,拼接前缀,后缀);
}else{
System.out.println("格式有误");
}
}
private static void doSomething(String 前缀,String 拼接前缀,String 后缀) {
//大于三,前边加逗号
if(前缀.length()>3){
//拼接前缀=,+后三位+原拼接前缀
拼接前缀=","+前缀.substring(前缀.length()-4, 前缀.length()-1)+拼接前缀;
//前缀=原前缀-后三位
前缀=前缀.substring(0, 前缀.length()-3);
//继续递归
doSomething(前缀, 拼接前缀,后缀);
}else{
//等于或者小于三,不加逗号,拼接字符串,然后结束
拼接前缀=前缀.substring(0, 前缀.length())+拼接前缀;
System.out.println("$"+拼接前缀+"."+后缀);
return;
}
}
}
代码有些不规范,有时间会修改完善,不喜勿喷。么么哒
- 面试遇到的一个递归题目
- 面试遇到的题目
- 面试遇到的题目!
- 面试时遇到的一个c++算法题目
- 一个苦逼程序员遇到的面试题目
- 近期面试遇到的题目
- 一个经典的递归题目
- 今天遇到的一个题目
- 面试遇到的Windows相关的题目
- 一个小的面试题目
- 微软的一个面试题目
- 一个百度的面试题目
- 一个百度的面试题目
- 一个素数的面试题目
- 一个二分法的面试题目
- 近日参加面试遇到的题目
- 最近面试java遇到过的题目
- JAVA面试笔试常常遇到的题目
- MongoDB可视化工具
- SQL SERVER中查询当天、当月、当年数据的SQL语句
- 11. Container With Most Water(求能装最多水的容器)
- Python3 与 Python2 的不同
- 基于MVC开发模式的javaWeb项目开发流程
- 面试遇到的一个递归题目
- 五、模板字面量
- 织梦CMS(Dedecms)提示信息页的修改方法
- Win32多线程编程
- Spring相关题目
- codeblocks下载安装及问题解决
- web.xml配置
- 网站的seo以及它和站长工具之间的秘密
- HDU-2030 汉字统计