用java绘制一个三角形
我需要写一个等腰三角形与客户的高度和宽度
三角形(5,10);好的。 三角形(10,10);好的。 三角形(10,5);好的。但对于三角形(6,10),我有一个问题。我怎样才能避免这个问题?你有什么建议
问题在于,并非所有必要的观点都是一致的
我的代码如下
public class triangle1 {
static int num1 =0;
public static void triangle(int height, int width) {
/* double num = new BigDecimal((double)width/2/height).setScale(1, RoundingMode.DOWN).doubleValue();*/
double num = (double) width/2/height;
// System.out.print(num);
triangle(height, width, 0,0.0, num);
}
private static void triangle(int height, int width, int s, double amountfordivide, double num) {
System.out.println(s+" "+ amountfordivide+ " " + num+" "+ (++num1));
if (s++ <= height ) {
triangle(height, width, s, amountfordivide+num, num);
// System.out.println();
/*System.out.println(n +" "+ m);*/
if (s-1 == 0) {
for (double i = 0.0; i <= width; i = i + num) {
System.out.print(".");
}
System.out.println();
} else {
for (double i = 0.0; i <= width; i = i+num) {
if (i == amountfordivide) System.out.print( ".");
else if (i == (width - amountfordivide)) System.out.print(".");
else
System.out.print(" ");
}
System.out.println();
}
}
}
public static void main(String[] args) {
triangle(10, 5);
}
}
# 1 楼答案
不要认为增加双倍会达到某个确切的值。所以
一定要写
但是你有一个问题,你用==
你可以使用类似的“括号比较”
另一种情况也是如此
但最好更改计算,以便使用int循环计数器和“hot”值(amountfordivide)进行循环