新手求救,关于金字塔类的问题 刚才看了面试题的帖子,想弄出个 * * * * * * * * * * * * * * * *这个应该怎么写?给点注释,谢谢大虾们了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 println("* * * * * * *");println(" * * * * * ");println(" * * * ");println(" * ");刚刚看到类似的帖子了。 for(int i=5;i>=0;i--){for(int k=0;k<=5-i;k++){print(" ");}for(int j=0;j<=i;j++){print("*");}println();}我就在这里写的 没测试过 不知道对不对还有。 我实在不知道怎么写注释。以后这问题自己想。 把下面这个帖子里的反过来就行了。http://topic.csdn.net/u/20080310/14/42c8007a-e54c-47e9-b8a7-a995d1a84c45.html public class Test { public static void main(String[] args) { printTriangle(5, true); System.out.println(); printTriangle(5, false); System.out.println(); printReverseTriangle(5, true); System.out.println(); printReverseTriangle(5, false); } private static void printTriangle(int line, boolean isSolid) { for(int i = 1; i <= line; i++) { for(int j = - line + 1; j < i; j++) { if(isSolid) { System.out.print(i > Math.abs(j) ? "*" : " "); }else{ System.out.print(i == Math.abs(j) + 1 || i == line ? "*" : " "); } } System.out.println(); } } private static void printReverseTriangle(int line, boolean isSolid) { for(int i = 1; i <= line; i++) { for(int j = - line + 1, k = line - i; j <= k; j++) { if(isSolid) { System.out.print(i + Math.abs(j) <= line ? "*" : " "); }else{ System.out.print(i + Math.abs(j) == line || i == 1 ? "*" : " "); } } System.out.println(); } }} i= +-+-+-+-+-+ 1 |#|#|#|#|#| +-+-+-+-+-+ 2 | |#|#|#| | +-+-+-+-+-+ 3 | | |#| | | +-+-+-+-+-+ j= -2 1 0 1 2算法很简单:从图中可以看出规律,即 i + abs(j) <= line 时,有“#”,否则为空格。 i= +-+-+-+-+-+ 1 |#|#|#|#|#| +-+-+-+-+-+ 2 | |#|#|#| +-+-+-+-+ 3 | | |#| +-+-+-+ j= -2 1 0 1 2最右边的几个空格没有必要输出,j 只要从 - (line - 1) 到 line - 1 位置就可以了。 7 楼说错了,更正一下,j 的终止条件 line - 1 改为 line - i: i= +-+-+-+-+-+ 1 |#|#|#|#|#| +-+-+-+-+-+ 2 | |#|#|#| +-+-+-+-+ 3 | | |#| +-+-+-+ j= -2 1 0 1 2最右边的几个空格没有必要输出,j 只要从 - (line - 1) 到 line - i 位置就可以了。 public class JinZiTa { /** * @param args */ public static void main(String[] args) { for(int i=4;i>=1;i--){ for(int j=1;j<=4-i;j++){ System.out.print(" "); } for(int k=2*i-1;k>=1;k--){ System.out.print("*"); } System.out.println(" "); } } }用for循环写就可以了 public class test { public static void main(String[] args) { for(int i=6;i>=0;i--) { for(int k=0;k<=5-i;k++) { System.out.print(" "); } for(int j=0;j<=i;j++) { System.out.print(" "+"*"); } System.out.println(); i--; } }} 菜鸟~终于写完了扫雷…请大家狠批 批量载入问题 java 编程生成代码 求助? 为什么是1不是3?? 很有意思的一道题!!!! 1.5中String新增加了public int codePointCount(int beginIndex,int endIndex)方法,请问有知道如何使用的吗? 求java图象扭曲算法? Socket编程一问 请问各位大虾,怎样在java里打开一个IE窗口。 下载ECLIPSE 中文语言包 抽象类可以有构造函数吗? jsp页面form提交问题
println(" * * * * * ");
println(" * * * ");
println(" * ");刚刚看到类似的帖子了。
for(int i=5;i>=0;i--)
{
for(int k=0;k<=5-i;k++)
{
print(" ");
}
for(int j=0;j<=i;j++)
{
print("*");
}
println();
}我就在这里写的
没测试过 不知道对不对
还有。
我实在不知道怎么写注释。
以后这问题自己想。
printTriangle(5, true);
System.out.println(); printTriangle(5, false);
System.out.println(); printReverseTriangle(5, true);
System.out.println(); printReverseTriangle(5, false);
}
private static void printTriangle(int line, boolean isSolid) {
for(int i = 1; i <= line; i++) {
for(int j = - line + 1; j < i; j++) {
if(isSolid) {
System.out.print(i > Math.abs(j) ? "*" : " ");
}else{
System.out.print(i == Math.abs(j) + 1 || i == line ? "*" : " ");
}
}
System.out.println();
}
}
private static void printReverseTriangle(int line, boolean isSolid) {
for(int i = 1; i <= line; i++) {
for(int j = - line + 1, k = line - i; j <= k; j++) {
if(isSolid) {
System.out.print(i + Math.abs(j) <= line ? "*" : " ");
}else{
System.out.print(i + Math.abs(j) == line || i == 1 ? "*" : " ");
}
}
System.out.println();
}
}
}
+-+-+-+-+-+
1 |#|#|#|#|#|
+-+-+-+-+-+
2 | |#|#|#| |
+-+-+-+-+-+
3 | | |#| | |
+-+-+-+-+-+
j= -2 1 0 1 2算法很简单:
从图中可以看出规律,即 i + abs(j) <= line 时,有“#”,否则为空格。
+-+-+-+-+-+
1 |#|#|#|#|#|
+-+-+-+-+-+
2 | |#|#|#|
+-+-+-+-+
3 | | |#|
+-+-+-+
j= -2 1 0 1 2最右边的几个空格没有必要输出,j 只要从 - (line - 1) 到 line - 1 位置就可以了。
+-+-+-+-+-+
1 |#|#|#|#|#|
+-+-+-+-+-+
2 | |#|#|#|
+-+-+-+-+
3 | | |#|
+-+-+-+
j= -2 1 0 1 2最右边的几个空格没有必要输出,j 只要从 - (line - 1) 到 line - i 位置就可以了。
* @param args
*/
public static void main(String[] args) {
for(int i=4;i>=1;i--){
for(int j=1;j<=4-i;j++){
System.out.print(" ");
}
for(int k=2*i-1;k>=1;k--){
System.out.print("*");
}
System.out.println(" ");
}
}
}
用for循环写就可以了
public class test {
public static void main(String[] args) {
for(int i=6;i>=0;i--)
{
for(int k=0;k<=5-i;k++)
{
System.out.print(" ");
}
for(int j=0;j<=i;j++)
{
System.out.print(" "+"*");
}
System.out.println();
i--;
}
}
}