使用java打印心型、圓形圖案的實現代碼
相信對于打印三角形都沒什么難度,只需要利用for循環嵌套使用就行
但是對于打印圓形和三角形不同因為到圓心距離相等的點一般不會橫坐標和縱坐標都為整數
打印愛心
愛心的公式 (x²+y²-1)³-x²*y³=0
調用此方法即可打印愛心圖案
/** *打印心形 */ 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('^'); } elseSystem.out.print(' '); } System.out.println(); } }
打印圓形
打印圓形主要就是所有點到圓心的距離為半徑即可
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(’*’); } }
效果如下
如果想打印實心的只需要把條件修改即可
for (int j = 0; j <= len; j++) { System.out.print(’*’); }
此循環是打印圓形里面部分,輸出字符就是實心圓
補充知識:在Java中打印金字塔圖案
1、問題描述
打印出金字塔圖案,如圖1所示。
2、問題分析
這時一個很經典的循環應用的問題。我們都知道,打印輸出的時候,都是從
最左端輸出,而這里第一個三角形符號是在最中間,這實際是因為三角形之前有很多空格。當我們使用圓圈來表示空格,實際的輸出效果應該是圖2的形式。
分析圖2,我們可以發現這個題目的奧秘。
(1) 確定程序框架
程序框架代碼如下:
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-行數”的規律,對應代碼如下:
for(i =1; i<= n; i++){ for(j = 1; j <= n ? i; j++) //根據外層行號,輸出符號左邊空格 System.out.println(“ ”);}
(4) 打印符號數
由于每行符號數有著“行數*2-1”的規律,對應代碼如下:
for(i =1; i<= n; i++){ for(k = 1; j <= i * 2 -1; k++) //根據外層行號,輸出符號數 System.out.println(“*”);}
(5) 完整程序
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) 擴展
倒金字塔
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'); } }}
直角三角形
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'); } }}
以上這篇使用java打印心型、圓形圖案的實現代碼就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章: