[問題] Javascript 問題 P幣5000 ^^

看板java作者 (痛苦)時間8年前 (2016/04/17 01:51), 8年前編輯推噓3(306)
留言9則, 5人參與, 最新討論串1/2 (看更多)
不知道PO在這 O不OK 請大大見諒 小弟被人問問題 有點搞混了 看似簡單 我只會javascript一點 會運用到propmt console.log for if 所以在這求程式解 給P幣5000元 Q1: 尋找陣列中缺少的數字: 輸入一個陣列, 該陣列的元素是 1 到 N+1,其中 N 是陣列的數 量。請找出其中缺少的數字。例如輸入 [1,2,4,5,6] 應輸出 3 答案應該會是 console.log( solution([1,2,4]) ); // 3 console.log( solution([1,2,3,5,6]) ); // 4 console.log( solution([1,2,3,4,5]) ); // 6 我的解法是 a. 先不管propmt 輸入或輸出 直接改下方的console.log()當輸入 b. function solution(InputArray) { for(var i=0; i <= InputArray.length-1; i++) { if (InputArray[i+1]-InputArray[i] == 2) { return i+2; } } } console.log( solution([1,2,4]) ) 答案顯示3 console.log( solution([1,2,3,5,6]) )答案顯示4 console.log( solution([1,2,3,4,5]) ) 答案解示無解 c. 這樣只能求解數列中有缺漏數字, console.log( solution([1,2,4]) ); // 3 console.log( solution([1,2,3,5,6]) ); // 4 換句話說不能求解 連續數列N元素,再補遞N+1,會沒辦法判斷 console.log( solution([1,2,3,4,5]) ); // 6 b. function solution(InputArray) { for(var i=0; i <= InputArray.length-1; i++) { if (InputArray[i+1]-InputArray[i] == 2) { return i+2; } } } console.log( solution([1,2,4]) ) 答案顯示3 console.log( solution([1,2,3,5,6]) )答案顯示4 console.log( solution([1,2,3,4,5]) ) 答案解示無解 c. 這樣只能求解數列中有缺漏數字, console.log( solution([1,2,4]) ); // 3 console.log( solution([1,2,3,5,6]) ); // 4 換句話說不能求解 連續數列N元素,再補遞N+1,會沒辦法判斷 console.log( solution([1,2,3,4,5]) ); // 6 d. 請問 該如何解決 連續數列N元素,再補遞N+1,會沒辦法判斷 以及 增加輸入列陣及 輸出缺漏數字 給P幣5000 感謝大大 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.229.158 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1460829093.A.93D.html ※ 編輯: jackjenny (114.42.229.158), 04/17/2016 01:53:58

04/17 02:51, , 1F
你跑錯板了,到ajax板好些
04/17 02:51, 1F

04/17 04:01, , 2F
為何不用if(InputArray[i]!=i+1) return i+1;
04/17 04:01, 2F

04/17 04:03, , 3F
然後在for外多一行 return "?";
04/17 04:03, 3F

04/17 05:58, , 4F
建議迴圈不要這樣寫 for(i=0;i<=n-1;i++) 這樣容易搞混
04/17 05:58, 4F

04/17 05:58, , 5F
應該這樣寫for(i=0;i<n;i++) 雖然都一樣
04/17 05:58, 5F

04/18 12:16, , 6F
如果只是很單純的每個元素都不同的話..
04/18 12:16, 6F

04/18 12:17, , 7F
把1加到N+1, 陣列中的數字相加 這兩個數字相扣 結束
04/18 12:17, 7F

04/19 16:17, , 8F
total=陣列元素全部相加 total2=(上底+下底)*高/2
04/19 16:17, 8F

04/19 16:18, , 9F
total2-total是0代表少最後一個 非0就傳相減的值
04/19 16:18, 9F
文章代碼(AID): #1N4dkbaz (java)
文章代碼(AID): #1N4dkbaz (java)