用Java代码中的for循环可以打印出各种三角形,便于熟悉for循环的特性,即外环循环执行一次,内循环执行N次。
工具:
电脑软件
for循环
三角形
方法:
1、打印定点在左下的直角三角形;
2、打印定点在左上的直角三角形;
3、打印定点在右下的直角三角形,这里三角形的形状是由*所占的位置决定的;
4、打印定点在左下的直角三角形,这里三角形的形状是由*所占的位置决定的;
5、打印定点在正上方的直角三角形;
6、打印定点在正下方的直角三角形。
没有这么简单的吧 因为给出底长 还要算高 你上面的sample那个根本不算是三角形吧 一条边歪了 而且你给出底长为7的话 那么点阵是1357和1234567和147和17 4种情况 其实这个最后还是求一个数的约数问题 看似简单 其实要考虑的深点啊~ 这种算法题你网上搜下ACM会出来一大坨~程序大概就是首先提示输入一个值作为直角长方形的底 然后求出这个底-1的值的约数 约数就是他的跨度 然后再根据跨度算高 然后用高作为循环次数print出直角三角形
其实思路已经给到这地步了 还不自己动手一味的在baidu知道求代码是不会有进步的~ 下面的可以自己写写看吧~ 干巴爹~
public static void printTriangle(int end) {// 打印第一行
for (int i = 0 i < end + 1 i++) {
System.out.print("*")
}
// 打印剩下的所有行
for (int i = 1 i < end + 1 i++) {
System.out.println()// 打印一个换行
int front = i// 斜边之前
int behind = end// 最后一个
// front即斜边之前都打印空格
for (int k = 0 k < front k++) {
System.out.print(" ")
}
// 最后一行只打印一个*号
if (i < end) {
System.out.print("*")
}
// 斜边到最后之间打印空格
for (int k = front + 1 k < behind k++) {
// 第一行倒数第三列打印直角标志
if (i == 1) {
if (k == behind - 2) {
System.out.print("*")
} else {
System.out.print(" ")
}
}
// 第二行倒数第三列、倒数第二列打印直角标识
else if (i == 2) {
// 倒数
if (k == behind - 2 || k == behind - 1) {
System.out.print("*")
} else {
System.out.print(" ")
}
} else {
System.out.print(" ")
}
}
// 打印最后一个*号
System.out.print("*")
}
}
你也可以用数组来打印
下面是打印出来的图案