使用java列印心型、圓形圖案的實現程式碼
阿新 • • 發佈:2020-12-01
相信對於列印三角形都沒什麼難度,只需要利用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("^"); } else System.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,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,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列印心型、圓形圖案的實現程式碼就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。