用Java编写打印一段图形(类似菱形)的程序
1个回答
展开全部
这个题目主要又两个难点:1.$符号不是一直增加,而是先增加,后减少。2需要在$前补空格。
代码如下:
public class PrintDollar {
public static void main(String[] args) {
// 总行数,可以修改
int row = 5;
// 每一行的$符号数量
int dollarNumber;
// 追加的空格数量
int spaceNumber;
String dollar = "$";
for (int i = 1; i <= row; i++) {
// 每一行输出的字符
String printString = "";
/*
* 判断行数是否超过了一半,超过一半$符号开始减少
*/
if (i * 2 - 1 > row) {
// 行数超过一半的情况
dollarNumber = (row - i) * 2 + 1;
spaceNumber = (row - dollarNumber) / 2;
} else {
// 行数没超过一半的情况
dollarNumber = i * 2 - 1;
spaceNumber = (row - dollarNumber) / 2;
}
//追加空格
for (int j = 0; j < spaceNumber; j++) {
printString += " ";
}
//追加$符号
for (int j = 0; j < dollarNumber; j++) {
printString += dollar;
}
System.out.println(printString);
}
}
}
代码如下:
public class PrintDollar {
public static void main(String[] args) {
// 总行数,可以修改
int row = 5;
// 每一行的$符号数量
int dollarNumber;
// 追加的空格数量
int spaceNumber;
String dollar = "$";
for (int i = 1; i <= row; i++) {
// 每一行输出的字符
String printString = "";
/*
* 判断行数是否超过了一半,超过一半$符号开始减少
*/
if (i * 2 - 1 > row) {
// 行数超过一半的情况
dollarNumber = (row - i) * 2 + 1;
spaceNumber = (row - dollarNumber) / 2;
} else {
// 行数没超过一半的情况
dollarNumber = i * 2 - 1;
spaceNumber = (row - dollarNumber) / 2;
}
//追加空格
for (int j = 0; j < spaceNumber; j++) {
printString += " ";
}
//追加$符号
for (int j = 0; j < dollarNumber; j++) {
printString += dollar;
}
System.out.println(printString);
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询