java输出钻石_Java:递归打印钻石
如果给定大小,你将如何使用Java递归打印钻石?
大小为5会产生:
***** *****
**** ****
*** ***
** **
* *
* *
** **
*** ***
**** ****
***** *****
我到目前为止的守则
public static void dia(int statSize, int size,int count) {
int statSizeLarge = (statSize*2)+1;
// Params:
// statSize == static size, never change this
// size == variable size, change this
// count == counter
if(size==0) {
System.out.println();
} else {
// is the counter smaller then the size
// if yes, increment and keep printing
if(count
System.out.print("*");
}
// is greater then size?
// if yes, move on, print
// a few more stars
if((count<=statSizeLarge)){
if(countsize)){
System.out.print(" ");
}else if (count>size+1){
System.out.print("*");
} else {}
dia(statSize,size,count+1);
}
// reset count, move to next element
if(count>=statSizeLarge) {
count = 0;
System.out.println();
dia(statSize,size-1,count);
}
} // ends Else
}
输出:
Enter commands:
diamond 3
******
** ****
* ****
* ****
** ****
* ****
* ****
解决方法:
要创建更大的钻石,请选择较小的钻石并添加两个额外的行和列.在下面的diagrom中,为了清晰起见,我用点替换空格.在第二颗钻石中,新添加的字符以粗体显示.
*****.*****
****.**** ****...****
***...*** ***.....***
**.....** **.......**
*.......* *.........*
......... --> ...........
*.......* *.........*
**.....** **.......**
***...*** ***.....***
****.**** ****...****
*****.*****
^^
||
extra columns
您的递归函数应该打印第一行,然后打印一个较小的菱形,中间有两个额外的列,然后是最后一行.
在伪代码中:
void diamond(stars, spaces) {
if (n == 0) {
print(' ' * spaces)
} else {
print('*' * stars, ' ' * spaces, '*' * stars)
diamond(stars - 1, spaces + 2)
print('*' * stars, ' ' * spaces, '*' * stars)
}
}
由于这是一个学习练习,我不会给你完整的Java源代码 – 你可以自己编写它.在这里,您可以看到它在Python中在线运行,这样您就可以看到该算法有效:
标签:java,recursion
来源: https://codeday.me/bug/20190614/1237958.html
java输出钻石_Java:递归打印钻石相关推荐
- java输出钻石_Java程序打印钻石形状
可以通过先打印三角形再打印倒三角形来打印菱形.一个例子如下:* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ...
- java输出文件目录_Java实现打印文件路径和展示文件目录
/** 输入文件或目录,若为文件打印其路径和名字, * 若为目录,可选文件后缀名,若不选,则打印其下所有文件, * 若选择后缀名,则打印其下所有匹配后缀名的文件 * * * mist lee,2014 ...
- java输出梯形_java怎么打印等腰梯形
西兰花伟大炮 var arrorigin = new Array(); arrorigin[0] = [0,0,0,0,1,1,1,0,0,0,0]; arrorigin[1] = [0,0,0,1, ...
- java输出字体_Java打印字体拉伸
我只是让打印机在 java中工作我也需要它,但是我需要解决的最后一个问题.当它打印时,字体的宽度相当拉伸,并且不像它应该的那样清晰和清晰. 这是我的代码我的实际绘图到论文: FontMetrics m ...
- java输出二进制数_Java打印整数的二进制表示(代码与解析)
int a=-99;for(int i=0;i<32;i++){int t=(a & 0x80000000>>>i)>>>(31-i); System ...
- java 输出 三角形_Java实现输出三角形
本来是想实现空心的,想了太久没写出来就算了 代码 package com.qaq.strruct; public class TestDemo01 { //打印三角形 //思路:空格的距离和星星的数量 ...
- java输出日志_java代码中如何正确使用loggger日志输出
java代码中如何正确使用loggger日志输出 发布时间:2019-06-28作者:spider阅读(2980) 当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统, ...
- java打星星_java初学打印星星以及九九乘法表
Java中打印星星,就是为了让初学者熟悉和掌握循环的使用方法: 给定一个图形如: * *** ***** ******* 第一种方式:由循环输出各个部分,再结合起来 for(int i=1;i< ...
- java输出变量_java输出变量怎么操作?怎么输入变量?
变量是java中最基础的功能,但同时也是最不可缺少的,有些刚学习java的小伙伴可能还不知道怎么输出输入变量,下面就听小编讲解讲解吧. 变量 1.变量声明数据类型 变量名; 赋值 变量名 = 值; 合 ...
最新文章
- QIIME 2教程. 08差异丰度分析gneiss(2020.11)
- GNN、RL强势崛起,CNN初现疲态?这是ICLR 2021最全论文主题分析
- Tomcat 6.0 日志处理
- 2.7 迁移学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
- nfs漏洞修复(showmount -e)
- 虚拟列表控件---加载大数据行
- 【网络编程】一张图了解TCP/IP协议
- Spring Boot文档阅读笔记=Caching Data with Spring
- mysql 定时统计_PHP+MySQL定时数据统计优化
- Vsphere初试——基本安装
- 这份Java面试题,阿里P7的正确率都不到50%!!
- 的大小name转为小写_linux 进程 -- ps -ef|grep process_name
- Rust: tokio,异步代码与运行速度初探
- 关于最新版的JCreator只能编译不能运行的问题
- 手把手教你如何使用IOMETER测试工具测试存储
- 英文PDF怎么翻译成中文?两分钟让你学会翻译PDF
- RFT和QTP与AutoIt
- 51系列单片机IO模试设置
- 测肤API+应用开发,自助打开线上AI测肤
- 课堂笔记:逻辑回归和鸢尾花数据集
热门文章
- Win7系统CMD进入文件夹目录的命令
- 5、乐趣国学—“行有不得,反求诸己。”
- js创建数组(js创建数组并填充数据)
- 一键清理网站木马文件,从此网站拥有专属保镖 ——阿里云虚拟主机推出木马查杀功能
- win10关机后cpu风扇仍一直在转,解决办法
- 企业组织发展的利器--麦肯锡7S模型
- Android修改音量
- linux搭建kk教程,linux版本KK搭建视频教程+文字教程
- Android仿微博、人人Feed详情页吸附导航栏
- python __all__用法