Google笔试的一道选择题,北京一套房子200W,每年涨价幅度10%,某程序员年薪40W,请问,该程序员不吃不喝多少年后可以有自己的房子?
选项:A:5年B:7年 C:8年D:9年E:到死都没房。
var housingPrice = 200; // 当前房价,单位W
var raises = 0.1; // 每年涨幅
var annualSalary = 40; // 年薪,单位W
var savings = 0; // 存款
var year = 0; // 第几年
var html = [];
while(savings < housingPrice && // 存款不够买房
housingPrice * raises <= annualSalary) { // 年薪已经没有房价涨得快了
year++; // 一年过去了
savings += annualSalary; // 存款增加
housingPrice += housingPrice * raises; // 房价增加
html.push(["第", year, "年",
" 房价:", housingPrice.toFixed(2),
" 存款:", savings,
" 来年房价增长:", (housingPrice * raises).toFixed(2)].join(""));
}
if (housingPrice * raises > annualSalary) {
html.push("结论:死了都买不起。");
} else {
html.push(["结论:", year, "年。"].join(""));
}
document.open();
document.write(html.join("<br/>"));
document.close();第1年 房价:220.00 存款:40 来年房价增长:22.00
第2年 房价:242.00 存款:80 来年房价增长:24.20
第3年 房价:266.20 存款:120 来年房价增长:26.62
第4年 房价:292.82 存款:160 来年房价增长:29.28
第5年 房价:322.10 存款:200 来年房价增长:32.21
第6年 房价:354.31 存款:240 来年房价增长:35.43
第7年 房价:389.74 存款:280 来年房价增长:38.97
第8年 房价:428.72 存款:320 来年房价增长:42.87
结论:死了都买不起。第一感觉就是死都买不起,今天看到的写个程序验证一下,果然。
选项:A:5年B:7年 C:8年D:9年E:到死都没房。
var housingPrice = 200; // 当前房价,单位W
var raises = 0.1; // 每年涨幅
var annualSalary = 40; // 年薪,单位W
var savings = 0; // 存款
var year = 0; // 第几年
var html = [];
while(savings < housingPrice && // 存款不够买房
housingPrice * raises <= annualSalary) { // 年薪已经没有房价涨得快了
year++; // 一年过去了
savings += annualSalary; // 存款增加
housingPrice += housingPrice * raises; // 房价增加
html.push(["第", year, "年",
" 房价:", housingPrice.toFixed(2),
" 存款:", savings,
" 来年房价增长:", (housingPrice * raises).toFixed(2)].join(""));
}
if (housingPrice * raises > annualSalary) {
html.push("结论:死了都买不起。");
} else {
html.push(["结论:", year, "年。"].join(""));
}
document.open();
document.write(html.join("<br/>"));
document.close();第1年 房价:220.00 存款:40 来年房价增长:22.00
第2年 房价:242.00 存款:80 来年房价增长:24.20
第3年 房价:266.20 存款:120 来年房价增长:26.62
第4年 房价:292.82 存款:160 来年房价增长:29.28
第5年 房价:322.10 存款:200 来年房价增长:32.21
第6年 房价:354.31 存款:240 来年房价增长:35.43
第7年 房价:389.74 存款:280 来年房价增长:38.97
第8年 房价:428.72 存款:320 来年房价增长:42.87
结论:死了都买不起。第一感觉就是死都买不起,今天看到的写个程序验证一下,果然。
while(b){
++n;
fj = parseInt(fj * 1.1);
if(nx * n >= fj)b = false;
}
alert(n);//365年答案E
declare @table table (时间 varchar(5),房价 float,存款 int,来年房价增长 float)
insert into @table
select '第1年',220.00,40,22.00 union all
select '第2年',242.00,80,24.20 union all
select '第3年',266.20,120,26.62 union all
select '第4年',292.82,160,29.28 union all
select '第5年',322.10,200,32.21 union all
select '第6年',354.31,240,35.43 union all
select '第7年',389.74,280,38.97 union all
select '第8年',428.72,320,42.87select 时间,房价,房价*0.4 AS 首付款,存款,来年房价增长 from @table/*
时间 房价 首付款 存款 来年房价增长
----- ---------------------- ---------------------- ----------- ----------------------
第1年 220 88 40 22
第2年 242 96.8 80 24.2
第3年 266.2 106.48 120 26.62
第4年 292.82 117.128 160 29.28
第5年 322.1 128.84 200 32.21
第6年 354.31 141.724 240 35.43
第7年 389.74 155.896 280 38.97
第8年 428.72 171.488 320 42.87
*/--首付按40%算的话,第三年就可以付首付了。
http://topic.csdn.net/u/20100928/13/8e4e268b-7728-4b00-b1b1-cbe370681190.html
public static void main(String[] args)
{
double f=200; //最初房价
int n=40; //年薪
int year=0; //第几年
double z= 0.1; //房价涨幅
int nx=0;
s(f,n,year,z,nx);
}
public static void s(double f,int n,int year,double z,int nx)
{
if(year>100)
{
System.out.println("结论:到死都没房");
}else{
if(f==nx)
{
System.out.println("结论:不吃不喝到第"+year+"年能买的起房");
return;
}
else
{
f=f*z+f;
nx=nx+n;
year++;
System.out.println("第"+year+"年");
System.out.println("房价="+f+"W");
System.out.println("总存款="+nx+"W");
s(f,n,year,z,nx);
}
}
}
}
第98年
房价=2277787.1636069855W
总存款=3920W
第99年
房价=2505565.879967684W
总存款=3960W
第100年
房价=2756122.467964452W
总存款=4000W
第101年
房价=3031734.7147608977W
总存款=4040W
结论:到死都没房
果然是菜鸟程序员,回复完了才发现内容都放 code 外面去了 ⊙﹏⊙b汗
(11 / 10) ^ (n - 1) = n / 5
(11 ^ (n - 1)) / (10 ^ (n - 1)) = n / 5
11 ^ (n - 1) = (n / 5) * (10 ^ (n - 1))
5 * (11 ^ (n - 1)) = n * (10 ^ (n - 1))