| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7651 人关注过本帖
标题:打印正三角形
只看楼主 加入收藏
ouyangshan09
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2012-10-17
结帖率:83.33%
收藏
 问题点数:0 回复次数:7 
打印正三角形
          *                    //空10个空格打印1个字母   星星循环1次
         ***                   //空 9个空格打印3个字母           3
        *****                  //空 8个空格打印5个字母           5
       *******                 //空 7个空格打印7个字母           7
      *********                //空 6个空格打印9个字母           9
     ***********               //空 5个空格打印11个字母          11
    *************              //空 4个空格打印13个字母          13
   ***************             //空 3个空格打印15个字母          15
  *****************            //空 2个空格打印17个字母          17
 *******************           //空 1个空格打印19个字母          19


嵌套2个 循环 一个 循环控制 空格 一个控制星星
控制空格的理解了 ;
但是 星星的那个 很烦啊。。。
第1行:1个
第2行:3个

每行逐渐2个的递增  这个 要怎么写?
搜索更多相关主题的帖子: 打印 字母 正三角形 
2012-11-26 21:29
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:0 
这样写,每循环一次,也就是把i++改成i=i+2;这样就可以了

有心者,千方百计;无心者,千难万难。
2012-12-06 12:37
邱威
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:136
专家分:351
注 册:2012-3-28
收藏
得分:0 
外面一个for(;;k+=2;)循环;里面两个for()循环,一个打空格,一个打“*”;懂?
2012-12-06 13:20
jafisher
Rank: 1
等 级:新手上路
威 望:1
帖 子:12
专家分:8
注 册:2010-7-24
收藏
得分:0 
三个循环复杂度明显就高上去了,可以一个循环控制行数,一个循环控制空格和*,里面的循环加上一个判断就行。
  int n = 11;
  int t = n;
  for(int i=0;i<10;i++) {
    t--;
    for(int j=0;j<n;j++) {
      if(j<t)
        System.out.print(" ");
      else
        System.out.print("*");
    }
    System.out.println();
    n++;
  }

  你只要知道空格加*的个数是递增的,而空格的个数是递减的就好办了,用两个变量去控制。

[ 本帖最后由 jafisher 于 2012-12-6 16:21 编辑 ]
2012-12-06 16:18
紫色年华
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:38
专家分:103
注 册:2012-11-30
收藏
得分:0 
import java.util.Scanner;

public class test1 {
      public static void printSpace(int space)
    {
        for (int i=0;i<space;i++)
        System.out.print(" ");
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner Cin=new Scanner(System.in);
        System.out.print("请输入各行最多的*号数值:");
        int row=Cin.nextInt();
        for(int i=row;i>0;i=i-2)
        {
            //上三角
            //输出每行空格
            printSpace((row-i)/2);
            //输出row个×
            for(int j=i;j>0;j--)
                System.out.print("*");
                System.out.println();
        }      
}
就这样了,不知道是不是你要的呢

2012-12-06 17:47
fz19910125
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:52
专家分:11
注 册:2010-10-12
收藏
得分:0 
程序代码:
    for(int i = 1 ; i < 10 ; i++)
    {

        for(int j = 10 ; j > i-1 ; --j)
        {
            cout<<" ";
        }
        for (int m = 0 ; m < i*2-1 ; ++m)
        {
            cout<<"*";           

        }
        cout<<endl;
    }

图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 fz19910125 于 2012-12-6 17:58 编辑 ]
2012-12-06 17:57
回转逆流
Rank: 1
等 级:新手上路
帖 子:8
专家分:8
注 册:2012-11-17
收藏
得分:0 
楼上的好,用i<2*n-1
2012-12-06 22:15
presley
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-12-7
收藏
得分:0 
public static void main(String[]args){
        for(int i=1;i<11;i++){
            for(int j=i;j<11;j++){
                System.out.print(" ");
            }
            for(int z=1;z<=i*2-1;z++){
                System.out.print("*");
            }
            System.out.println();
        }
        
    }
2012-12-07 17:22
快速回复:打印正三角形
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020499 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved