我想打印下面的图案
v
v v
v v
v v
以下是我尝试的代码。
public static void main(String[] args) {
System.out.println("The Pattern is");
for (int i = 0; i < 4; i++) {
//System.out.println(i);
for (int k = 0; k <= i - 2; k++) {
System.out.print("v ");
}
for (int j = 0; j <= 4 - i; j++) {
System.out.print(" ");
}
System.out.println();
}
}
我得到以下输出:
v
v v
任何人都可以帮我解决这种模式吗?
答案 0 :(得分:0)
在k循环之前移动j循环
public static void main (String[] args) throws java.lang.Exception
{
System.out.println("The Pattern is");
for(int i=0;i<4;i++) {
for(int j=0;j<=4-i;j++)
System.out.print(" ");
for(int k=0;k<=i-2;k++)
System.out.print("V ");
System.out.println();
}
}
答案 1 :(得分:0)
另一种完成工作的方式(动态行数):
public static void main(String[] args) {
final int numRows = 4;
for (int row = 0; row < numRows; row++) {
for (int preSpace = numRows - row; preSpace >= 0; preSpace--) {
System.out.print(" ");
}
if (row > 0) {
System.out.print("v");
for (int postSpace = 1; postSpace < row * 2; postSpace++) {
System.out.print(" ");
}
}
System.out.println("v");
}
}
答案 2 :(得分:0)
以下代码将打印出来
public static void main(String[] args) {
System.out.println("The Pattern is");
// startup parameter
final int rowSize = 4;
final int startPos = 2;
int leftPos = startPos;
int rightPos = startPos;
// for each row
for(int row=0; row<rowSize; row++){
// find and print v (max is right most v)
for(int col=0; col<rightPos+1; col++){
// when reach left pos
if(col==leftPos){
System.out.print("v");
// when left pos and right pos is same
if(leftPos==rightPos){
break;
}
}
// when reach right pos
if (col==rightPos){
System.out.print("v");
break;
}
// print space when it is not match
System.out.print(" ");
}
// next line
System.out.println();
// adjust position
if(leftPos!=0) leftPos--;
rightPos++;
}
}
答案 3 :(得分:0)
这对我有用:
public class DrawPattern {
public static void main(String[] args) {
int i, j;
int num = 7;
for (i = 0; i < num; i++) {
for (j = 0; j < num; j++) {
if (isConditionMatch(num, i, j)) {
System.out.print("V");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
// this pattern will decide where to print 'V'
private static boolean isConditionMatch(int num, int i, int j) {
return (i + j == (num - 1) / 2 || j - i == (num - 1) / 2);
}
}
输出:
V
V V
V V
V V