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

程序16:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制
var s=0;
var num=0;
var loop=5;
var a=3;
for(var i=1;i<=loop;i++){
num=num*10+a;
//console.log(num);
s+=num;
}
console.log(s);
结果
37035
程序17:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
for(var i=2;i<=1000;i++){
var arr=[];
for(var j=1;j<i;j++){
if(i%j==0){
arr.push(j);
}
}
for(var k=0,sum=0;k<arr.length;k++){
sum+=arr[k];
}
if(sum==i){
console.log(i);
}
}
结果
6
28
496
程序18:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第十次落地时共经过多少米?第十次反弹多高?
var arr1=[10,];
var arr2=[];
var n=10;
for(var i=1,sum=0;i<n;i++){
arr1[i]=arr1[i-1]/2;
sum+=arr1[i]*2;
arr2[i]=arr1[i]/2;
}
sum+=arr1[0];
console.log('第'+n+'次落地时共经过'+sum+'米');
console.log('第'+n+'次弹起高度'+arr2[n-1]+'米');
结果
第10次落地时共经过29.9609375米
第10次弹起高度0.009765625米
程序19:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?
for(var i=1;;i++){
for(var j=1,count=i;j<10;j++){
count=count/2-1;
}
if(count==1){
console.log('第一天共摘了'+i+'个桃子');
break;
}
}
结果
第一天共摘了1534个桃子
程序20:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。a说他不和x比,c说他不和x,z比,请编程找出三队赛手名单。
var arr=['x','y','z'];
for(a=0;a<=2;a++){
for(b=0;b<=2;b++){
if(a!=b){
for(c=0;c<=2;c++){
if(a!=c&&b!=c){
if(arr[a]!='x'&&arr[c]!='x'&&arr[c]!='z'){
console.log('a的对手是'+arr[a]+',b的对手是'+arr[b]+',c的对手是'+arr[c]);
}
}
}
}
}
}
结果
a的对手是z,b的对手是x,c的对手是y

猜你喜欢

转载自www.cnblogs.com/xutao1517588477/p/10591756.html
今日推荐