有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在2^x中给定x时,打印真值表值的逻辑是什么?

给定

x=2行=pow(2,2)=4列=2列

输出:

T T
T F
F T
F F

x=3行=pow(2,3)=8列=8列

输出:

T T T
T T F
T F T
T F F
F T T
F T F
F F T
F F F

等等。 可以这样打印,也可以创建一个字符数组,其中包含2^x行和x列,并使用T/F作为值

我可以把它看作是说,列号j的变化应该发生在pow(2,x-(j+1))之后

谢谢,; 最好使用伪代码或java


共 (3) 个答案

  1. # 1 楼答案

    递归地:取N-1的表,在所有行前加上T,然后用F重复,得到N的表

    void Print(String Line, int N) {
      if (N== 0) println(Line); else { Print("T " + Line, N-1); Print("F " + Line, N-1); }
    }
    
    ...
    Print("", 5);
    ....
    
  2. # 2 楼答案

    我认为这可能会帮助你:

    public static void main(String args[]) {
            int size = 2;      // change the size ans get your truth table.
            generateTable(0, size, new int[size]);
        }
    
        private static void generateTable(int index, int size, int[] current) {
            if (index == size) {
                for (int i = 0; i < size; i++) {
                    System.out.print(current[i] + " ");
                }
                System.out.println();
            } else {
                for (int i = 0; i < 2; i++) {
                    current[index] = i;
                    generateTable(index + 1, size, current);
                }
            }
        }
    

    输出(当通过大小=2时):

    0 0 
    0 1 
    1 0 
    1 1 
    
  3. # 3 楼答案

    那么:

    for(double x=Math.pow(2,col-1); x<Math.pow(2,col); x++)
        System.out.println(Integer.toBinaryString((int)x));
    }
    

    只需将col设置为要输出的列数