日期:2014-05-19  浏览次数:20616 次

谁能给我讲下 JAVA 打印正三角形和到三角形的原理?
RT  ,网上 好多 只有 代码 看不懂  谁能给我讲一下  不要 代码 说下怎么实现的
------最佳解决方案--------------------

/*
作者:唐良运
功能:用java实现金字塔的模型
*          *         *         *
**        ***       * *       * *
***      *****     *   *     *   *
****    *******   *******     * *
                               *
该问题主要考虑空格与*的排列问题!
*/

public class Pyramid
{
public static void main(String[] args){
//先将层数控制为4层
 int layer = 7;
 //i表示多少层
 for(int i=1;i<=layer;i++){
//先打印第一个图形;打印第二个图形
//找空格规律:1->3,2->2,3->1,4->0
 for(int k=1;k<=layer-i;k++){
   //打印空格
   System.out.print(" ");
   }
   //改变*的控制i->2i-1
   //1->1,2->3,3->5,4->7
 for(int j=1;j<=2*i-1;j++){
 //第三个是一个镂空的三角形
 //判断该层是否为顶层或底层
 if(i==1
------其他解决方案--------------------
正三角形:
第1行:   *
第2行:  ***
第3行: *****
第4行:*******
先要会输出直角三角形,然后内层循环控制每行输出的空格和星星(空格数量随着外层循环变量递减,但是星星数量随着外层循环变量递增),外层循环控制输出多少行。
倒三角形 不是一样一样的吗、
------其他解决方案--------------------
搞是搞懂了 但又有新的问题了
------其他解决方案--------------------
内循环控制输出的空格 我了解清楚了  也学会了 直角的 但是控制星星的那层循环 不会 

第一行:一个
第二行:三个
第三行:五个
第四行:七个  
 这个不知道怎么写
------其他解决方案--------------------
i==layer){
      System.out.print("*");
 }else{
  //找是否是第一个或是最后一个
  if(j==1
------其他解决方案--------------------
j==2*i-1){
   System.out.print("*");
  }else{
   System.out.print(" ");
  }
 }
   }
   //打印换行
   System.out.println();
 }
}
}


------其他解决方案--------------------
看清楚问题 在来么  。。。 我说的是 

           *                   
          ***                   
        *****                  
       *******