当前位置: 首页 > 知识库问答 >
问题:

打印出带有给定输入参数的单词列表

焦阎宝
2023-03-14

返回类型为void,两个输入参数分别为int,char。我正在使用while循环,因为我想用while循环解决这个问题,并且方法基本上会像梯子一样打印出来。示例:drawL(6,'@')将打印

@

@@

null

@@@@

@@@@@

@@@@@@

但是没有这些空隙,所以它会变得平滑。我想出了这段代码,但问题是,如果我输入5,4,7,任何数字,然后6,它不会打印出那么多的字符,所以如果它是4,'@',那么它仍然会打印出上面的那么多@。

public void drawL(int g, char h){
        
        int i = 1;
        
        while (i <= g){
            
            i += 1;
            if(i == g){
                
                System.out.println(h);
                System.out.println(h+""+h);
                System.out.println(h+""+h+""+h);
                System.out.println(h+""+h+""+h+""+h);
                System.out.println(h+""+h+""+h+""+h+""+h);
                
            }
            
        }

    }



共有3个答案

朱令
2023-03-14

您可以使用for-loops来解决此问题:

public class Main {
    public static void main(String[] args) {
        drawL(4,'@');
        System.out.println();
        drawL(5,'@');
    }
    public static void drawL(int g, char h){
        for(int i = 0; i < g; i++) {
            for(int j = 0; j < i+1; j++) {
                System.out.print(h);
            }
            System.out.println();
        }
    }
}

输出:

@
@@
@@@
@@@@

@
@@
@@@
@@@@
@@@@@
张积厚
2023-03-14

您可能应该在这里使用嵌套的双循环。外部循环将控制行,内部循环将控制打印多少字符。

public static void drawL(int g, char h) {
    for (int i=0; i < g; ++i) {
        for (int j=0; j <= i; ++j) {
            System.out.print(h);
        }
        System.out.println();
    }
}

public static void main(String[] args) {
    drawL(6, '@');
}

上述对drawl()调用的输出如下:

@
@@
@@@
@@@@
@@@@@
@@@@@@
房唯
2023-03-14

如果您坚持使用while循环,可以这样做:

class Main {
    public static void drawL(int n) {
        int i = 1;
        while (i <= n) {
            int j = 1;
            while(j <= i) {
                System.out.print('@');
                j += 1;
            }
            i += 1;
            System.out.println();
        }

    }

    public static void main(String[] args) {
        drawL(6);
    }
}

使用Java 8库的drawl()的替代实现。

import java.util.stream.IntStream;

public static void drawL(int n) {
    IntStream.rangeClosed(1, n).forEach(i -> {
        IntStream.rangeClosed(1, i).forEach(j -> 
            System.out.print('@'));
        System.out.println();
    });
}

输出:

@
@@
@@@
@@@@
@@@@@
@@@@@@
 类似资料:
  • 我试图在bash中使用cat生成一个文件,在bash中,我已经运行了一个脚本,我保存到一个变量中,然后将在cat中使用。为了运行脚本并将输出保存到变量,我使用了以下方法: 接下来,我将展示一个cat文件的摘录,其中使用了变量RESULT。 运行bash后,我得到的是变量RESULT的正确输出。但是,文件开头有一个单词echo(如下所示)。这是有问题的,因为我试图自动化代码,添加echo这个词会破坏

  • 问题内容: 如何在Java用户输入中打印出单个单词?示例:用户输入:“我们爱妈妈,她是最好的”。该程序假设打印“妈妈”,因为第一个字符和最后一个字符相同。我的代码最后没有显示任何内容。这是我的代码: 问题答案: 无需解析字符串的每个字母,您可以将输入拆分成单词数组并分别检查每个单词。 您可以保持循环,但只需要检查是否与处的循环相同 这是一个工作示例。请注意,我已经删除了扫描仪部件,以使其在我正在使

  • 本文向大家介绍打印给定字符串的所有排列,包括了打印给定字符串的所有排列的使用技巧和注意事项,需要的朋友参考一下 打印给定字符串的所有排列是回溯问题的一个示例。我们将减小子字符串的大小以解决子问题,然后再次回溯以从该部分获得另一个排列。 例如,如果字符串是ABC,则所有排列将是ABC,ACB,BAC,BCA,CAB,CBA。 该算法的复杂度为O(n!)。这是一个巨大的复杂性。当字符串大小增加时,需要

  • 打印出小于给定数N的素数。对于奖励积分,您的解决方案应该在时间或更好的时间内运行。你可以假设N总是一个正整数。 输入样本: 程序应该接受文件名的路径作为其第一个参数。该文件中的每一行都是一个测试用例。每个测试用例将包含一个整数

  • 下面的代码运行良好。它根据LinkedIn上的列表收集信息。 (提供帐户信息并免费使用,因为它是测试帐户) 但是,输出连接数据,而不是每个字段都有自己的字段。

  • 问题内容: 我在Python中有一个列表 我想在没有正常的“ []的情况下在单行中打印数组 将给出的输出为; 那不是我想要的格式,而是我希望它像这样; 注意:它必须在一行中。 问题答案: 听起来很简单,它只接受列表中的所有元素,然后将它们加入。

  • 问题内容: 我需要一个程序的帮助,该程序可以识别句子中的各个单词,将它们存储在列表中,并用该单词在列表中的位置替换原始句子中的每个单词。这是我到目前为止所拥有的。 例如: 将重新创建为1,2,3,4,5,6,7,8,9,1,3,9,6,7,8,4,5 我设法确定了列表中的各个单词,但是我研究了如何用各个单词的位置替换原始列表中的单词。 问题答案: 您还可以创建一个字典,将单词和单词的初始位置映射在

  • 问题内容: 我有以以下格式(示例)保存的数据(数字): 是否有任何python-way方法来排列数字并将其作为 (我无法预测列的大小)。 问题答案: 这是一个简单的独立示例,显示了如何设置可变列宽的格式: 输出: