iT邦幫忙

3

迴圈演算法問題

  • 分享至 

  • xImage

小弟是小小的java碼農
遇到一個迴圈想不出來該怎麼寫
題目如下
生成一陣列,必須按照順序

1-0
0-1
2-0
0-2
2-1
1-2
3-0
0-3
3-1
1-3
3-2
2-3

如何生成沒關係順序對就可以了
麻煩各位幫友救救小碼農

theRookie iT邦新手 1 級 ‧ 2020-04-16 20:17:02 檢舉
用什麼語言寫都可以
我再自己翻譯就好了

小弟先謝各位大大了
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
harry xie
iT邦研究生 1 級 ‧ 2020-04-16 21:12:07
最佳解答
let arr = [];
for (let i = 1; i < 4; i++) {
  for (let j = 0; j < i; j++) {
    arr.push(i + "-" + j);
    arr.push(j + "-" + i);
  }
}
console.log(arr);

看你最大值是多少,改 i < 4 那邊就可以了,選我正解~~/images/emoticon/emoticon07.gif

theRookie iT邦新手 1 級 ‧ 2020-04-17 13:16:56 檢舉

謝謝~

2
海綿寶寶
iT邦大神 1 級 ‧ 2020-04-16 22:08:22
public class JavaFiddle
  {
    public static void main(String[] args)
    {
      for (int i=1;i<=3;i++) {
          for (int j=0;j<i;j++) {
              System.out.printf("%d-%d\n", i, j);
              System.out.printf("%d-%d\n", j, i);
          }
      }
    }
  }

用什麼語言寫都可以
我再自己翻譯就好了

有這等功力
看不出這個迴圈
/images/emoticon/emoticon19.gif

theRookie iT邦新手 1 級 ‧ 2020-04-17 20:42:58 檢舉

工作實在太過忙碌
一時轉不過來
感謝邦友鼎力相助

5
samuel24
iT邦新手 5 級 ‧ 2020-04-17 08:04:20

樓上幾位大大的程式都很完善,我就來分享一下我的解題思路好了

題目:

1-0
0-1
2-0
0-2
2-1
1-2
3-0
0-3
3-1
1-3
3-2
2-3

  • Step 1 簡化他

可以看出是由很多組(a-b,b-a)組成的,所以先刪掉所有的(b-a)。

變成這樣:

1-0
2-0
2-1
3-0
3-1
3-2

  • Step 2 分析

可以看出有 (1-X,2-X,3-X)三塊

1-0

2-0
2-1

3-0
3-1
3-2

再進一步觀察各塊,就會發現(a-b)的b是由0~(a-1)組成的

a=3 → b=0~(3-1)={0,1,2}

  • Step 3 總結

可以看出 我們需要一個迴圈生成0~(a-1)的整數,而且外面還要有一個迴圈負責產生a (範圍是1~3),別忘了生出a和b後要輸出的是a-b和b-a。

  • Step 4 coding

樓上已經示範過了,請自己努力

希望這樣有幫助到你。

theRookie iT邦新手 1 級 ‧ 2020-04-17 20:43:23 檢舉

實在清楚
感謝
samuel24大大

我要發表回答

立即登入回答