我做了以下计划
public class StarPattern5 {
public static void main(String args[])
{
int j=1;
for(int i=1;i<=15;i++)
{
System.out.print("*");
if(i==1 || i==3 || i==6 || i==10)
{
System.out.println();
}
}
}
}
正在打印
*
**
***
****
*****
我想优化它,这样我们就可以打印50行而无需编写太多代码。提前付款.. :)
答案 0 :(得分:3)
只需在循环中累积一个字符串:
String s = "";
for (int i = 0; i < 50; ++i) {
System.out.println(s += "*");
}
或:
for (String s = "*"; s.length() <= 50; s += "*") {
System.out.println(s);
}
答案 1 :(得分:1)
您可以使用Apache common lang软件包中的StringUtils类,如下所示:
public class StarPattern5 {
public static void main(String args[]){
for(int i =1;i<=50;i++)
System.out.println(StringUtils.repeat('*',i));
}
}
这样可以防止您编写太多代码,但它会使用第三方库,这取决于您的确切需要/需要。
答案 2 :(得分:1)
这是一个单一循环变体,如果它到达名为i
的变量,会将count
重置为0.
public class star {
public static void main(String...banana)
{
for (int i = 0, count = 1; i < 50; i++)
{
if (i == count)
{
count++;
i = 0;
System.out.println("");
}
System.out.print("*");
}
}
}
答案 3 :(得分:0)
您可以使用具有相同时间复杂度1 for
循环的递归打印此类三角形,如下所示:
public String printTriangle (int count) {
if( count <= 0 ) return "";
String p = printTriangle(count - 1);
p = p + "*";
System.out.println(p);
return p;
如果要打印50行的三角形,则传递参数count = 50
。
答案 4 :(得分:0)
static void Main(string[] args)
{
Console.Write("Enter a Number : ");
int num;
num = Convert.ToInt32(Console.ReadLine());
string design = null;
////////Forpatern
/// *****
/// ****
/// ***
/// **
/// *
////----start----------
for (int i = num; i >= 0; i--)
{
if (num != 1)
{
if (i == 0)
{
num = num - 1;
//Console.WriteLine();
design = design + System.Environment.NewLine + ("*");
i = num;
}
else
{
design = design + ("*");
}
}
}
//-----End
int spaceCounter = 0;
int Rows = num;
////////For patern
/// *****
/// ****
/// ***
/// **
/// *
////----start----------
for (int i=num;i>=0;i--)
{
if(spaceCounter==0)
{
if (i != 0)
{
design = design + "*";
}
else {
num = num - 1;
i = Rows + 1;
spaceCounter = Rows - num;
design = design + System.Environment.NewLine;
}
}
else if(spaceCounter>0){
design = design + " ";
spaceCounter = spaceCounter - 1;
}
}
///---------End
Console.WriteLine(design);
Console.ReadLine();
}
答案 5 :(得分:-1)
这很容易。像这样,你可以自己做吧
public class StarPattern5 {
public static void main(String args[])
{
StringBuilder sb = new StingBuilder("");
for(int i =1;i<=50;i++){
sb.append("*");
System.out.println(sb.toString());
}
}
答案 6 :(得分:-1)
#CPP程序,用于在一行中使用一个循环来打印动态金字塔图案。
https://www.linkedin.com/posts/akashdarji8320_cpp-cplusplus-c-activity-6683972516999950336-ttlP
#include <iostream>
using namespace std;
int main() {
int rows;
cout<<"Enter number of rows :: ";
cin>>rows;
for( int i = 1, j = rows, k = rows; i <= rows*rows; i++ )
if( i >= j && cout<<"*" && i % k == 0 && (j += rows-1) && cout<<endl || cout<<" " );
}