请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术发帖,必有回复! 做最受欢迎的Java论坛

疯狂Java联盟

 找回密码
 加入联盟
查看: 76|回复: 0

Java面试题集19(核心部分)——《疯狂Java讲义》附赠

[复制链接]
发表于 2018-6-7 22:24:50 | 显示全部楼层 |阅读模式
本文随《疯狂Java讲义》光盘附赠
京东购买地址:https://item.jd.com/12261787.html
当当购买地址:http://product.dangdang.com/23532609.html
37、编写一个函数将一个十六进制数的字符串参数转换成整数返回。
       String str ="13abf";
       int len = str.length();
       int sum = 0;
       for(int i = 0 ; i <len ; i++)
       {
              char c =str.charAt(len - 1 - i);
              int n = Character.digit(c ,16);
              sum += n * (1 << (4 * i));
       }
       System.out.println(sum);
其实,也可以用Integer.parseInt(str,16),但面试官很可能是想考我们的编码基本功。
38、银行还款问题
银行贷款的还款方式中最常用的是一种叫“等额本息”,还款法,即借款人在约定还款期限内的每一期(月)归还的金额(产生的利息+部分本金)都是相等的,现有一笔总额为T元的N年期住房贷款,年利率为R,要求算出每一期的还款的本金和利息总额,请写出解决思路和任意一种编程语言实现的主要代码。
思路:既然是按月还款,那就要将N年按月来计算,即要还N*12个月,这样就可以求出每月要还的本金。由于每月要还的那部分本金所欠的时间不同,所以,它们所产生的利息是不同的,该部分本金的利息为:部分本金额*所欠月数*月利率。应该是这么个算法,如果利息还计利息,如果月还款不按年利率来算,老百姓算不明白的。
int monthMoney = T/N/12;
float monthRate = R/12;
int totalMonth = N * 12;
float totalRate = 0;
for(int i = 1 ; i <= totalMonth ; i++)
{
       totalRate += monthMoney* monthRate * i;
}
int result = monthMoney + totalRate/N/12;

您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11063141号 )

GMT+8, 2018-6-26 03:34 , Processed in 0.218888 second(s), 6 queries , File On.

快速回复 返回顶部 返回列表