程序员50题(JS版本)(五)

程序21:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
var arr=[];
var count=20;
for(var i=0;i<=count;i++){
if(i==0){
arr[i]=1;
}else if(i==1){
arr[i]=2;
}else{
arr[i]=arr[i-1]+arr[i-2];
}
}
for(var i=0,sum=0;i<count;i++){
sum+=arr[i+1]/arr[i];
}
console.log(sum);
结果
32.66026079864164
程序22:求1+2!+3!+...+20!的和
for(var i=1,sum=0;i<=20;i++){
for(var j=1,res=1;j<=i;j++){
res*=j
}
sum+=res;
}
console.log(sum);
结果
2561327494111820300
 
程序23:利用递归方法求5!
var result;
function res(i){
if(i==1){
result=1;
}else{
result=res(i-1)*i;
}
return result;
}
console.log(res(5));
结果
120
 
程序25:有5个人坐在一起,问第五个人多少岁?他说比第四个人大2岁,问第四个人岁数,他说比第三个人大2岁。问第三个人,又说比第二个人大两岁。问第二个人,说比第一个人大两岁。最后问第一个人,他说是十岁。请问第五个人是多大?
var arr=[10,];
for(var i=1;i<=4;i++){
arr[i]=arr[i-1]+2;
}
console.log('第五个人是'+arr[4]+'岁');
结果
第五个人是18岁
上一篇:E - Power Strings,求最小周期串


下一篇:转:如何在Ubuntu 14.04中安装最新版Eclipse