三角形问题
给定一个数,判断是否为n*(n+1)/2,如果是能画出三角形
例如:输入3 ,它是n*(n+1)/2中的一个数,
则画出图形为:
*
* *
输入10:
*
* *
* * *
* * * *
如果输入4,则输出不是能构成三角形的数。
[解决办法]
import java.io.DataInputStream;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException {
while (true) {
DataInputStream bis = new DataInputStream(System.in);
String s = bis.readLine();
s = s.trim();
if(s.length() == 0) {
continue;
}
int in = 0;
try {
in = Integer.parseInt(s);
} catch (Exception e) {
System.out.println( "输入的不是数字! ");
continue;
}
int mid = (int)Math.sqrt(in * 2);
int level = 0;
if ((mid - 1) * mid / 2 == in) {
level = mid - 1;
}
if (mid * (mid + 1) / 2 == in) {
level = mid;
}
if ((mid + 1) * (mid + 2) / 2 == in) {
level = mid + 1;
}
if (level == 0) {
System.out.println( "输入了不能构成三角形的数! ");
continue;
} else {
for (int i = 0; i < level; i++) {
for (int j = 0; j <= i; j++) {
System.out.print( "* ");
}
System.out.println( " ");
}
}
}
}
}