| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 390 人关注过本帖
标题:打印菱形, 用递归该怎样写?
只看楼主 加入收藏
i_code
Rank: 2
等 级:论坛游民
帖 子:19
专家分:15
注 册:2013-5-2
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:3 
打印菱形, 用递归该怎样写?
程序代码:
//打印菱形

import java.util.*;

public class LingXing {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int level = s.nextInt();
        
        print(level);
            
    }    
    
    public static void print(int level) {
        int t = (level + 1) / 2;
        int i, j;
        
        for(i = 1; i<=t; i++) { //打印上半部分
            for(j = 1; j<=t-i; j++) {
                System.out.print(" ");    
            }    
            
            for(j = 1; j<=2*i-1; j++) {
                System.out.print("*");    
            }
            
            System.out.println();
        }    
        
        for(i = 1; i<t; i++) { //打印下半部分
            for(j = 1; j<=i; j++) {
                System.out.print(" ");    
            }    
            
            for(j = (t-i)*2-1; j>=1; j--) {
                System.out.print("*");    
            }
            
            System.out.println();
        }
    }
}


这是我的代码, 现在想用递归实现, 应该怎样写啊? 求指教!
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: import color 
2014-04-11 17:02
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
为何要用递归?

没必要


[fly]存在即是合理[/fly]
2014-04-11 18:25
i_code
Rank: 2
等 级:论坛游民
帖 子:19
专家分:15
注 册:2013-5-2
收藏
得分:0 
回复 2楼 azzbcc
因为最近在学递归,所以想用递归改写一哈
2014-04-11 22:19
fragileeye
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:107
专家分:387
注 册:2011-5-21
收藏
得分:10 
程序代码:
#include <stdio.h>
#define MAXSTAR "*********************"
void print( int level, int max_len, int num );

int main(int argc, char *argv[])
{
    int level = 0;
    int max_len = 0;
    
    while(1)
    {
        printf( "please input level(it must be a prime num): " );
        scanf( "%d", &level );
        if( level % 2 == 1 )
        {
            max_len = level;
            break;
        }
    }
    print( (level + 1) / 2 , max_len, 1 );
    return 0;
}

void print( int level, int max_len, int num )
{    
    int space_len = max_len - level + 1;
    
    if( --level )
    {
        printf( "%*.*s\n", space_len , 2 * num - 1, MAXSTAR );
        print( level, max_len, num+1 );
    } 
    printf( "%*.*s\n", space_len , 2 * num - 1, MAXSTAR );
}  


[ 本帖最后由 fragileeye 于 2014-4-12 01:01 编辑 ]
2014-04-12 00:54
快速回复:打印菱形, 用递归该怎样写?
数据加载中...
 
   



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

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