js经典案例-箭头函数打星星、回文数判断

//用户输入数字,根据用户的选择打印星星
//正着打星星函数
let chooseOne = line => {
    let strSpace = "";
    let strStar = "";
    //该层for循环控制星星的行数
    for(let i=1; i<=line; i++)
    {
        //该层for循环控制空格数
        for(let j=1; j<=line-i; j++)
        {
            strSpace = strSpace + " ";
        }
        //该层for循环控制星星的数量
        for(let k=1; k<=2*i-1; k++)
        {
            strStar = strStar + '*';
        }
        console.log(strSpace + strStar);//打印空格和星星
        //重置空格和星星的字符串
        strSpace = "";
        strStar = "";
    }
}
//倒着打星星
let chooseTwo = line => {
    let strSpace = "";
    let strStar = "";
    //该层for循环控制星星的行数
    for(let i=1; i<=line; i++)
    {
        //该层for循环控制空格数
        strSpace += " ";//打印空格之前专门多打印一个空格,为了方便后面打印菱形
        for(let j=1; j<=i-1; j++)
        {
            strSpace = strSpace + " ";
        }
        //该层for循环控制星星的数量
        for(let k=1;k<=line*2-(2*i-1); k++)
        {
            strStar = strStar + '*';
        }
        console.log(strSpace + strStar);//打印空格和星星
        //重置空格和星星的字符串
        strSpace = "";
        strStar = "";
    }
}
//空心三角形
let chooseThree = line => {
    let strSpace = "";
    let strStar = "";
    //该层for循环控制星星的行数
    for(let i=1;i<=line;i++)
    {
        //该层for循环控制空格数
        for(let j=1; j<=line-i; j++)
        {
            strSpace = strSpace + " ";
        }
        //该层for循环控制星星的数量
        for(let k=1; k<=2*i-1; k++)
        {
            //如果是第一行,或者最后一行 或者第一个星星 或者最后一个星星
            if(i==1 || i==line || k==1 || k==2*i-1)
            {
                strStar = strStar + '*';//字符串里面拼接*
            }
            else{
                strStar = strStar + ' ';//字符串里面拼接' '
            }
        }
        console.log(strSpace + strStar);//打印空格和星星
        //重置空格和星星的字符串
        strSpace = "";
        strStar = "";
    }
}
//菱形
let chooseFour = line => {
    let top = parseInt((line+1)/2);//正着的星星的行数
    let bottom = line - top;//倒着的星星的行数
    //首先正着打星星
    chooseOne(top);
    //接下来倒着打星星
    chooseTwo(bottom);
}
"use strict"
let readline = require("readline-sync");
console.log("请输入您要打印的图形: 1.正着打星星 2.倒着打星星 3.空心三角形  4.菱形(奇数)");
let choose = parseInt(readline.question(""));
console.log("请输入星星的行数:");
let line = parseInt(readline.question(""));
switch(choose)
{
    case 1:
        chooseOne(line);
        break;
    case 2:
        chooseTwo(line);
        break;
    case 3:
        chooseThree(line);
        break;
    case 4:
        chooseFour(line);
        break;
    default:
        console.log("您的输入有误");
}

 

 

 

//判断是否为回文数
let readline = require("readline-sync");
console.log("请输入你要进行判断的回文数:");
let oldNum = parseInt(readline.question(""));//用于存放用户输入的数   1234
let newNum = 0;//用于存放倒过来的数
//将用户输入的数倒过来赋值给newNum
for(let temp = oldNum;temp!=0; temp = parseInt(temp/10))//temp 0
{
  newNum = newNum*10 + temp%10;//4321  为什么要乘以10呢?
}
if(newNum == oldNum)
{
  console.log("是回文数");
}
else{
  console.log("不是回文数");
}

 

posted @ 2017-12-10 15:01  opacity-m  阅读(675)  评论(0编辑  收藏  举报