程序员比做50题-JavaScript篇(16-30)

程序员必做50题(16-30)

程序员必做50题(1-15)——————程序员必做50题(31-45)

16.求s=a+aa+aaa+aaa+…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。

function add(a,b){
    var x = '',s = 0;
    for(var i=0;i<b;i++){
        x += a;
        var z = Number(x);
        s += z
    }
    return s;
}
console.log(add(2,5));

17.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。

for(var i=1;;i++){
    var x=0;
    for(var j=1;j<i;j++){
        x += j;
    }
    if(x>=1000){
        break;
    }else if(i<=x){
        console.log(x)
    }
}

18.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

var a = 0,x = 0;
for(var i=100;x<3;){
    x++;
    a +=i;
    i/=2
}
console.log('第 '+x+' 次反弹高度是:'+i+'米'+'\n'+'第 '+x+' 次落地共经过了:'+(((a-100)*2)+100)+'米');

19.猴子吃桃问题:猴子第一天摘下若干个桃子, 当即吃了一半,还不瘾,又多吃了一个第二天早.上又将剩下的桃子吃掉-一半,又多吃了一个。以后每天早上都吃了前一一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一一个桃子了。求第一天共摘了多少。

var a=1;
for(var i=1;i<10;i++){
    a=(a+1)*2;
}
console.log(a);

20.两个乒乓球队进行比赛,各出三人。甲队为ab,c三人,乙队为xy;z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

var X = 'x'.charCodeAt();
var Y = 'y'.charCodeAt();
var Z = 'z'.charCodeAt();
for (var i = X; i <= Z; i++) {
  for (var j = X; j <= Z; j++) {
    for (var k = X; k <= Z; k++) {
      if (i == X || j == i || k == X || k == Z || k == i ||k == j) {
        continue;
      }
     console.log('a 的对手是 ' + String.fromCharCode(i));
     console.log('b 的对手是 ' + String.fromCharCode(j));
     console.log('c 的对手是 ' + String.fromCharCode(k));
    }
  }
}

21.有一分数序列: 2/1, 3/2, 5/3, 8/5,13/8, 21/13… 求出这个数列的前20项之和。

var a = 1,b = 2;
for(var i=1;i<=20;i++){
    var c = a;
    a = b;
    b = c+b;
}
console.log(b)

22.求1+21+3+…+20!的和。

var he = 0;
for(var i=1;i<=20;i++){
    var a = 1;
    for(var j=1;j<=i;j++){
        a *= j
    }
    he += a
}
console.log(he)

23.利用递归方法求5!。

function a(x){
    if(x===1){
        return 1;
    }
    return x*a(x-1);
}
console.log(a(5))

24.利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

function versa(x){
    if(x.length<=1){
        return x;
    }else{
        return x.charAt(x.length-1) + versa(x.slice(0,x.length-1));
    }
}
console.log(versa('abcdef'))
function versa(x){
    var ss = '';
    for(var i=x.length-1;i>=0;i--){
        ss += x[i]
    }
    return ss;
}
console.log(versa('abcdef'))

25.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

var a = 10;
for(var i=1;i<5;i++){
    a += 2;
}
console.log('第 '+i+' 个人 '+a+' 岁');

26.给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

function num(x){
    var a = x.toString();
    var s = a.length-1,e = '';
    for(var i=0;s>=0;s--){
        e += a[s];
        i++;
    }
    console.log('是一个 '+i+' 位数,逆序打印:'+e)
}
num(147258369);

27.题目: 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

function palindromic(x){
    var a = x.toString();
    var g = parseInt(a.length/2)
    for(var i=0;i<g;){
        if(a[i]!==a[a.length-1-i]){
            return console.log(x+' 不是文数');
        }
        i++;
    }
    return console.log(x+' 是文数')
}
palindromic(1235321)

28.请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样, 则继续判断第二个字母。

var a = prompt('请输入星期几的第一个字母:');
var x = a.toLocaleLowerCase();
switch (x) {
    case 'm':
        alert('星期一');
        break;
    case 't':
        var aa = prompt('请输入第二个字母:');
        if(aa==='u'){
            alert('星期二');
            break;
        }else if(aa==='h'){
            alert('星期四');
        }
    case 'w':
        alert('星期三');
        break;
    case 'f':
        alert('星期五');
        break;
    case 's':
        var aa = prompt('请输入第二个字母');
        if(aa==='a'){
            alert('星期六');
            break;
        }else if(aa==='u'){
            alert('星期日');
            break;
        }
    default:
        alert('没有此日期'); 
        break;
}

29.对10个数进行排序。

var a = [3,45,50,6,88]
for(var i=0;i<a.length;i++){
    for(var j=0;j<a.length;j++){
        if(a[i]>a[j]){
            var x = a[i];
            a[i] = a[j];
            a[j] = x;
        }
    }
}
console.log(a);

30.求一个3*3矩阵对角线元素这和。

var a = [[12,45,78],
         [23,56,89],
         [41,52,63]];
console.log(a[0][0]+a[1][1]+a[2][2]);
console.log(a[0][2]+a[1][1]+a[2][0]);
    

作者自述

新手上路,望各位大佬指教-----------
如有相关资料、视屏给作者看看可否?

后续的题以后更新-----------------------
autchan@163.com----------------------
欢迎提各种意见--------------------------

--------------------------------------------------------------------------------------------- 学WEB前端的第15天

程序员必做50题(1-15)程序员必做50题(31-45)

  • 11
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
很抱歉,但是我没有找到关于程序员编程艺术1-38的PDF。根据引用\[1\]中的信息,程序员编程艺术的总结只包括前二十二章。引用\[3\]提供了一个下载地址,但是只包含了前37章的PDF。所以,目前我无法提供程序员编程艺术1-38的PDF下载地址。 #### 引用[.reference_title] - *1* [程序员编程艺术第一~二十七章集锦与总结(教你如何编程),及PDF免分下载](https://blog.csdn.net/v_JULY_v/article/details/7506231)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [程序员编程艺术第二十五章:Jon Bentley:90%无法正确实现二分查找](https://blog.csdn.net/iteye_20954/article/details/82237124)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [程序员编程艺术第一~三十八章集锦与总结,及Github地址、PDF下载](https://blog.csdn.net/v_JULY_v/article/details/17303459)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值