【问题标题】:Return array of bitstrings after generating instead of just printing生成后返回位串数组,而不仅仅是打印
【发布时间】:2020-06-17 16:09:31
【问题描述】:

这是来自 geeksforgeeks 的代码,它生成并打印 n 位的位串,但我想知道,不是打印数组,而是如何存储或返回数组的值,以便我可以在 main 方法中使用这些值.

import java.util.*; 

class GFG 
{ 

// Function to print the output 
static void printTheArray(int arr[], int n) 
{ 
    for (int i = 0; i < n; i++) 
    { 
        System.out.print(arr[i]+" "); 
    } 
    System.out.println(); 
} 

// Function to generate all binary strings 
static void generateAllBinaryStrings(int n, 
                            int arr[], int i) 
{ 
    if (i == n) 
    { 
        printTheArray(arr, n); 
        return; 
    } 

    // First assign "0" at ith position 
    // and try for all other permutations 
    // for remaining positions 
    arr[i] = 0; 
    generateAllBinaryStrings(n, arr, i + 1); 

    // And then assign "1" at ith position 
    // and try for all other permutations 
    // for remaining positions 
    arr[i] = 1; 
    generateAllBinaryStrings(n, arr, i + 1); 
} 

// Driver Code 
public static void main(String args[]) 
{ 
    int n = 4; 

    int[] arr = new int[n]; 

    // Print all binary strings 
    generateAllBinaryStrings(n, arr, 0); 
} 
} 

// This code is contributed by 
// Surendra_Gangwar 

【问题讨论】:

    标签: java arrays bitstring


    【解决方案1】:
    1. 更改返回类型
    2. 添加退货声明

    像这样:

    // Function to generate all binary strings 
    static int[] generateAllBinaryStrings(int n, 
    //     ^^^^^ change return type
                                int arr[], int i) 
    { 
        if (i == n) 
        { 
            printTheArray(arr, n); 
            return; 
        } 
    
        // First assign "0" at ith position 
        // and try for all other permutations 
        // for remaining positions 
        arr[i] = 0; 
        generateAllBinaryStrings(n, arr, i + 1); 
    
        // And then assign "1" at ith position 
        // and try for all other permutations 
        // for remaining positions 
        arr[i] = 1; 
        generateAllBinaryStrings(n, arr, i + 1); 
    
        return arr;
    //  ^^^^^^^^^^^ add return statement
    } 
    

    【讨论】:

    • 我这样做了,但它只返回 1
    • 嗯,我认为您应该尝试更改代码。毕竟我们不是代码编写服务。
    猜你喜欢
    • 1970-01-01
    • 2021-05-23
    • 2019-03-13
    • 2012-10-25
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    相关资源
    最近更新 更多