JS基礎語法---函數練習part3---4個練習

来源:https://www.cnblogs.com/jane-panyiyun/archive/2019/11/27/11942677.html

練習1:求一個數字的階乘 function getJieCheng(num) { var result = 1; for (var i = 1; i <= num; i++) { result *= i; } return result; } console.log(getJieCheng(6)); ...


練習1:求一個數字的階乘

      function getJieCheng(num) {
        var result = 1;
        for (var i = 1; i <= num; i++) {
          result *= i;
        }
        return result;
      }
      console.log(getJieCheng(6)); //1*2*3*4*5*6

 

練習2:求一個數字的階乘和 

ps: 

5的階乘和:即5的階乘+4的階乘+3的階乘+2的階乘+1的階乘
      function getJieChengSum(num) {
        var sum = 0; //
        for (var i = 1; i <= num; i++) {
          sum += getJieCheng(i);
        }
        return sum;
      }
      console.log(getJieChengSum(5)); // 1+2+6+24+120
      //函數內部可以調用其它函數

 

*函數function getJieCheng(num)被調用了:

 

練習3: 求斐波那契數列

ps: 1 1 2 3 5 8 13 21 34 55 89 144

      function getFib(num) {
        var num1 = 1;
        var num2 = 1;
        var sum = 0;
        for (var i = 3; i <= num; i++) {
          sum = num1 + num2;
          num1 = num2;
          num2 = sum;
        }
        return sum;
      }
      console.log(getFib(12));//144

 

練習4:輸入,年月日,獲取這個日期是這一年的第多少天

      //判斷這個年份是不是閏年
      function isLeapYear() {
        return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
      }

      function getDays(year, month, day) {
        //定義變數存儲對應的天數
        var days = day;
        //如果用戶輸入的是一月份,沒必要向後算天數,直接返回天數
        if (month == 1) {
          return days;
        }
        //代碼執行到這裡-----說明用戶輸入的不是1月份
        //定義一個數組,存儲每個月份的天數
        var months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        //小於的是輸入的月份-1
        for (var i = 0; i < month - 1; i++) {
          days += months[i];
        }
        //判斷這個年份是不是閏年,且始第二個月起
        if (isLeapYear && month > 2) {
          days++;
        }
        return days;
      }
      console.log(getDays(2019,11,27));

 

附加:函數裡面可以調用其他的函數

         function f1() {
           console.log("我是一個函數");
           f2();//函數的調用
         }
         function f2() {
           console.log("我也是一個函數");
         }
      
         f1();

 


您的分享是我們最大的動力!

更多相關文章
  • DOM遍歷 parent()方法返回所選元素的直接父元素。(parent() 只能遍歷單個級別的 DOM樹) parents()方法獲取所選元素的所有祖先 children()所選元素的所有直接子元素 siblings()所有兄弟元素 next()/nextAll()下一個兄弟元素/下麵所有兄弟元素 ...
  • // 線性漸變,多用於折線柱形圖,前四個參數分別是 x0, y0, x2, y2, 範圍從 0 - 1,相當於在圖形包圍盒中的百分比,如果 globalCoord 為 `true`,則該四個值是絕對的像素位置 color: { type: 'linear', x: 0, // 左上角x y: 0, ...
  • 摘要 由於需要用到彈出層但是懶得造輪子所以使用vant 介紹 使用的node包管理器為yarn vue-cli版本4 rem計算方式為index.html的js腳本計算 安裝vant yarn add vant 配置 安裝babel-plugin-import實現按需載入 yarn add babe ...
  • let option = { backgroundColor: '#1a4377', animationDurationUpdate: 1500, // 動畫更新變化時間 animationEasingUpdate: 'quinticInOut', // 動畫緩動效果 series: [ { typ ...
  • HTML: click <a>,add active class, and remove other a's active class: a is an array, as: and a[1]: value of a[1]'s id attribute: $(a[1]).attr['id'] , w ...
  • js是單線程的,為什麼可以執行非同步操作呢? 這歸結與瀏覽器(js的宿主環境)通過某種方式使得js具備了非同步的屬性。 區分進程和線程: 進程:正在運行中的應用程式。每個進程都自己獨立的記憶體空間。例如:打開的瀏覽器就是一個進程。 線程:進程的子集,是獨立的。線程在共用的記憶體空間中運行。 瀏覽器是多進程的 ...
  • 由於項目中難免會碰到需要實時刷新,無論是獲取簡訊碼,還是在支付完成後輪詢獲取當前最新支付狀態,這時就需要用到定時器。但是,定時器如果不及時合理地清除,會造成業務邏輯混亂甚至應用卡死的情況,這個時就需要清除定時器。某個頁面中啟動定時器後,一定要在頁面關閉時將定時器清除掉。即在頁面卸載(關閉)的生命周期 ...
  • 什麼是‘路由’,路由相當於一個映射,一個url地址對應一個組件,當url地址A變為url地址B,那麼對應地址A的組件就會改變為對應地址B的組件。應用於spa,即:單頁應用,url地址改變,它不會跳轉頁面,只會用url對應的模塊取代上一個url對應的模塊,始終都在一個頁面操作。取代了傳統的多頁應用。值 ...
一周排行
  • 比如要拆分“呵呵呵90909086676喝喝999”,下麵當type=0返回的是中文字元串“呵呵呵,喝喝”,type=1返回的是數字字元串“90909086676,999”, private string GetStrings(string str,int type=0) { IList<strin ...
  • Swagger一個優秀的Api介面文檔生成工具。Swagger可以可以動態生成Api介面文檔,有效的降低前後端人員關於Api介面的溝通成本,促進項目高效開發。 1、使用NuGet安裝最新的包:Swashbuckle.AspNetCore。 2、編輯項目文件(NetCoreTemplate.Web.c ...
  • 2020 年 7 月 30 日, 由.NET基金會和微軟 將舉辦一個線上和為期一天的活動,包括 微軟 .NET 團隊的演講者以及社區的演講者。本次線上大會 專註.NET框架構建微服務,演講者分享構建和部署雲原生應用程式的最佳實踐、模式、提示和技巧。有關更多信息和隨時瞭解情況:https://focu... ...
  • #abp框架Excel導出——基於vue #1.技術棧 ##1.1 前端採用vue,官方提供 UI套件用的是iview ##1.2 後臺是abp——aspnetboilerplate 即abp v1,https://github.com/aspnetboilerplate/aspnetboilerp ...
  • 前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 作者:碧茂大數據 PS:如有需要Python學習資料的小伙伴可以加下方的群去找免費管理員領取 input()輸入 Python提供了 input() 內置函數從標準輸入讀入一 ...
  • 從12年到20年,python以肉眼可見的趨勢超過了java,成為了當今It界人人皆知的編程語言。 python為什麼這麼火? 網路編程語言搜索指數 適合初學者 Python具有語法簡單、語句清晰的特點,這就讓初學者在學習階段可以把精力集中在編程對象和思維方法上。 大佬都在用 Google,YouT ...
  • 在社會上存在一種普遍的對培訓機構的學生一種歧視的現象,具體表現在,比如:當你去公司面試的時候,一旦你說了你是培訓機構出來的,那麼基本上你就涼了,那麼你瞞著不說,然後又通過了面試成功入職,但是以後一旦在公司被髮現有培訓經歷,可能會面臨被降薪,甚至被辭退,培訓機構出來的學生,在用人單位眼裡就是能力低下的 ...
  • from typing import List# 這道題看了大佬寫的代碼,經過自己的理解寫出來了。# 從最外圍的四周找有沒有為O的,如果有的話就進入深搜函數,然後深搜遍歷# 判斷上下左右的位置是否為Oclass Solution: def solve(self, board: List[List[s ...
  • import requests; import re; import os; # 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, li ...
  • import requests; import re; import os; import parsel; 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537. ...