陳新龍
究竟什么是“算法”?“算法”有什么用處呢?算法是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統(tǒng)的方法解決問題的策略機制。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優(yōu)劣可以用空間復雜度和時間復雜度來衡量。比如窮舉法(1-1000)依次遞增循環(huán),能夠保證準確率,但是時間上會比較浪費。所以好的算法能夠幫助我們更快地解決問題。
尋找神秘鑰匙:你說出一個數字n,請根據這個數字n找出一個數k(神秘鑰匙),數k必須滿足四個要求:一、數字k必須是一個奇數;二、數字k能夠被5整除;三、數字k所有因數和為n;四、k小于1000。例如當我們輸入數字48后,輸出的神秘鑰匙就是35,因為35是一個奇數,還能夠被5整除,并且小于1000,35的因數為1,5,7,35,四個數字相加等于48。
題目分析:在解決問題前一定要整理思路,題目中提到了兩個數n和神秘鑰匙k,n是用戶輸入,k需要滿足四個條件:一是可被5整除,那么可以得出k數字的尾數是0或者是5。二是一個奇數,前兩個條件合并,k的末位只能是5;在程序中可按5,15,25,35,45遞增,以5為基礎每次遞增10,根據條件四上限是1000。最重要的條件三是所有的因數和為n,所以只需要通過窮舉法,依次計算5,15,25,35的因數和,當因數和等于輸入數字n時就找到了k(如圖1)。
添加兩個變量“因數和”“k”“i”。設置“因數和”的初始值0,k的初始值5。詢問用戶輸入一個整數。重復執(zhí)行直到用戶輸入的數等于“因數和”或者k>1000。在循環(huán)中將k的值每次增加10保證k是奇數和5的倍數(如圖2)。
新建積木“求和因數的和k”(自制積木添加輸入選項),重復執(zhí)行到變量i等于數字number(number相當于本次循環(huán)的k)。在循環(huán)中添加判斷如果number除以變量i的余數等于0,能整除說明i為k的一個因數;將其累加入“因素和”;在結尾之處不要忘記數字本身也是一個因數,要把本身也添加到“因素和”里面(如圖3)。
當某個數字滿足以上的條件的時候,會輸出到舞臺,如果沒有找到鑰匙則提示沒找到鑰匙。