java - 如何循环地重复输出和跳过某些值?

java - 如何循环地重复输出和跳过某些值?,第1张

我的数组[110]填充了整数(行)位(只有1和0), 我需要通过输出将它划分为7行的比特并重复跳过,从某个(标记为数字2的下一个幂)索引开始,从数组[110]到该数组的末尾[110]。

现在通过7个不同的行(组,数组),我的意思是位行,从索引是数字2的下一个幂的位开始,所以:1,2,4,8,16,32 ...也在每个下一行(组),必须输出值并跳过索引的数量,这是数组中数字2的下一个幂。因此,例如输出4,跳过4 ...或输出8,跳过8,依此类推到最后一组,其中数组中的索引是2的下一次幂。
此外,这些较小行的第一位总是被跳过或标记为未知(“?”)
我会认为数组[110]中的索引从1开始,而不是像数组中的自然一样 - 更容易描述我的问题。

在示例中(我在“()”中标记了数组的索引): 1(1),1(2),0(3),0(4),1(5),1(6),1(7),0(8),1(9),1(10), 0(11)。

在该示例中,第一组(输出1,跳过1)将是:1(1)< -unknown(?),1(2)< -skip,0(3)< -output,0( 4)&​​lt; -skip,1(5)< -output,1(6)< -skip,1(7)< -output,0(8)< -skip,1(9)< - 输出,1(10)< -skip,0(11)< -output ...直到数组结束[110]

第二组将是(从索引2开始;输出2和跳过2;第一个值被认为是未知的): 1(2)< -unknown(?),0(3)< -output,0(4)< -skip,1(5)< -skip,1(6)< -output,1( 7)< -output,0(8)< -skip,1(9)< -skip,1(10)< -output,0(11)< -output ...直到数组结束[ 110]

第3组将是(从索引4开始,作为2的下一个幂;输出4和跳过4;第一个值未知): 0(4)< -unknown(?),1(5)< -output,1(6)< -output,1(7)< -output,0(8)< -skip,1( 9)< -skip,1(10)< -skip,0(11)< - 跳过......直到数组结束[110]

这是汉明代码的一部分。为了更好地理解:https://www.youtube.com/watch?v=JAMLuxdHH8o

现在,我的方法是创建7个不同的数组,如group1 [],group2 [] ...并手动插入某些我想要跳过的索引。然后在for循环中,我只用“输出”位填充每个下一个group []数组。

但是我想让for循环为我重复这样做。只需在那里编码以跳过每个2,4,8(等等)值并输出每个2,4,8(...)值。因此,7个group []数组具有不同但静态的“距离”输出和跳过。怎么做?

我的代码是:

int skip2 []= {3,6,7,10,11,14,15,18,19,22,23,26,27,30,31,34,35,38,39,42,43,46,47, 
                        50,51,54,55,58,59,62,63,66,67,70,71,74,75,78,79,82,83,86,87,90,91,94,95,98,99,102,103,106,107}; 
          for (int j : skip2)
          {
          System.out.print(tab[j]   "(" j ")" ",");
          if (j%==0)
                {
                    System.out.println("");
                }
          }

对于后来组中较大的值(这是来自第5组,所以从16索引开始 - 但跳过它未知):

for (int m=17; m<110; m  )
        {
            if ((m>=32 && m<=47) && (m>=64 && m<=79) && (m>=96 && m<=111)) continue;
            System.out.print(tab[m]   "(" m ")" ",");
            if (m==0)
                {
                    System.out.println("");
                }
        }

第二种方式更具数学性,因为我必须计算跳过多少个索引。然而,也许有方法可以写出多少输出和多少跳过?

最佳答案:

1 个答案:

答案 0 :(得分:2)

解决:

        int x=0;
        int sum=0;
        boolean w = true;
        System.out.println("Bity potegi CZWARTEJ");
        for (int i = 0; i < 110; i  )
        {
            if (i<=4) continue;

            x  ;
            if (x == 4)
            {
                x = 0;
                w = !w;
            }


            if (i ==0) System.out.println("");
            if (w) System.out.print(tab[i] "(" i ")" ",");
            sum  ;
            if (i==109) System.out.println("\n" sum);

        }
本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复