这篇文章主要介绍了使用java打印爱心加名字的实现代码,具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧
相信对于打印三角形都没什么难度,只需要利用for循环嵌套使用就行
但是对于打印圆形和三角形不同因为到圆心距离相等的点一般不会横坐标和纵坐标都为整数
打印爱心
爱心的公式 (x²+y²-1)³-x²*y³=0
调用此方法即可打印爱心图案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /** *打印心形 */ public static void aiXin(){ for(float y = (float) 1.5;y>-1.5;y -=0.1) { for(float x= (float) -1.5;x<1.5;x+= 0.05){ float a = x*x+y*y-1; if((a*a*a-x*x*y*y*y)<=0.0) { System.out.print("^"); } else System.out.print(" "); } System.out.println(); } } |
打印圆形
打印圆形主要就是所有点到圆心的距离为半径即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public static void circle(){ int r=15;//圆形的半径 for (int y = 0; y <= 2 * r; y += 2) {//y的步长为2,改变y的步长可以将圆形变成椭圆 int x = (int)Math.round(r - Math.sqrt(2 * r * y - y * y)); int len = 2 * (r - x); for (int i = 0; i <= x; i++) { System.out.print(' '); } System.out.print('*'); for (int j = 0; j <= len; j++) { System.out.print(' '); } System.out.println('*'); } } |
效果如下
如果想打印实心的只需要把条件修改即可
1 2 3 | for (int j = 0; j <= len; j++) { System.out.print('*'); } |
此循环是打印圆形里面部分,输出字符就是实心圆
补充知识:在Java中打印金字塔图案
1、问题描述
打印出金字塔图案,如图1所示。
2、问题分析
这时一个很经典的循环应用的问题。我们都知道,打印输出的时候,都是从
最左端输出,而这里第一个三角形符号是在最中间,这实际是因为三角形之前有很多空格。当我们使用圆圈来表示空格,实际的输出效果应该是图2的形式。
分析图2,我们可以发现这个题目的奥秘。
(1) 确定程序框架
程序框架代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 | publicclass Ch1_1 { public static void main(String[] args) { ********* for(i = 1; i<= 5; i++) //循环5次,打印5行 { //打印若干空格 //打印若干符号 } } } |
(2) 寻找空格和符号规律
表1 空格和符号规律
行数 | 空格数 | 符号数 | ||
1 | 4 | 5-1 | 1 | 1*2-1 |
2 | 3 | 5-2 | 3 | 2*2-1 |
3 | 2 | 5-3 | 5 | 3*2-1 |
4 | 1 | 5-4 | 7 | 4*2-1 |
5 | 0 | 5-5 | 9 | 5*2-1 |
规律 | 依次递减1 | 5-行数 | 依次递增2 | 行数*2-1 |
(3) 打印空格数
由于每行空格数有“5-行数”的规律,对应代码如下:
1 2 3 4 5 | for(i =1; i<= n; i++) { for(j = 1; j <= n – i; j++) //根据外层行号,输出符号左边空格 System.out.println(“ ”); } |
(4) 打印符号数
由于每行符号数有着“行数*2-1”的规律,对应代码如下:
1 2 3 4 5 | for(i =1; i<= n; i++) { for(k = 1; j <= i * 2 -1; k++) //根据外层行号,输出符号数 System.out.println(“*”); } |
(5) 完整程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | importjava.util.Scanner; publicclass Ch1_1 { public static void main(String[] args) { int i, j, k, n; Scanner input = new Scanner(System.in); System.out.print("请输入金字塔层数:"); n = input.nextInt(); //外层循环控制层数 for(i = 1; i <= n; i++) { //根据外层行号,输出星号左边的空格 for(j = 1; j <= n - i; j++) System.out.printf(" "); //根据外层行号,输出星号个数 for(k = 1; k <= 2 * i -1; k++) System.out.print("*"); //一行结束,换行 System.out.print("\n"); } } } /* *注:Java中的print、printf、println */ |
程序运行结果,见图3。
(6) 扩展
倒金字塔
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | importjava.util.Scanner; publicclass Ch1_1 { public static void main(String[] args) { int i, j, k, n; Scanner input = new Scanner(System.in); System.out.print("请输入倒金字塔层数:"); n = input.nextInt(); //外层循环控制层数 for(i = 1; i <= n; i++) { //根据外层行号,输出星号左边的空格 for(j = 1; j <= i - 1; j++) System.out.printf(" "); //根据外层行号,输出星号个数 for(k = 1; k <= 2 * (n - i) -1;k++) System.out.print("*"); //一行结束,换行 System.out.print("\n"); } } } |
直角三角形
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | importjava.util.Scanner; publicclass Ch1_1 { public static void main(String[] args) { int i, j, k, n; Scanner input = new Scanner(System.in); System.out.print("请输入直角三角形层数:"); n = input.nextInt(); //外层循环控制层数 for(i = 1; i <= n; i++) { //根据外层行号,输出星号个数 for(k = 1; k <= n - i + 1; k++) System.out.print("*"); //一行结束,换行 System.out.print("\n"); } } } |
以上就是小编分享给大家的全部内容了,希望能给大家一个参考。
更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。
如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!