三角形问题

lady27 2007-06-27 10:40:33
给定一个数,判断是否为n*(n+1)/2,如果是能画出三角形
例如:输入3 ,它是n*(n+1)/2中的一个数,
则画出图形为:
*
* *
输入10:
*
* *
* * *
* * * *
如果输入4,则输出不是能构成三角形的数。
...全文
146 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zqrqq 2007-06-27
  • 打赏
  • 举报
回复

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("");
}
}
}
}
}

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧