close
最近面試至少看到兩三家的題目出現類似這種輸出三角形,這應該不是多難的問題,只是第一次看到還是要想一下,下面來用Java和Python來呈現一下各個三角形圖形
* 通常三角形的階層大部分都是用方法參數傳進來,看問題要求是什麼,有些題目是要求用print的,有些則是要求都加入在String字串變數裡。
等腰三角形
java (用StringBuilder來輸出)
* java的三種都有在面試看過,真的是蠻常出現
static String getTri2(int n) { StringBuilder res = new StringBuilder(); for(int i=0;i<n;i++) { for(int j=0;j<n-i-1;j++) { res.append(" "); } for(int j=0;j<2*i+1;j++) { res.append("*"); } res.append("\n"); } return res.toString(); } // n=3 // * // *** //***** static String getTri6(int n) { StringBuilder res = new StringBuilder(); for(int i=0;i<n;i++) { for(int j=0;j<n-i-1;j++) { res.append(" "); } for(int j=0;j<=4*i;j++) { if(j%4==0) res.append("*"); else res.append(" "); } res.append("\n"); } return res.toString(); } // n=5 // * // * * // * * * // * * * * // * * * * * static String getTri(int n) { StringBuilder res = new StringBuilder(); for(int i=0;i<n;i++) { for(int j=0;j<n-i-1;j++) { res.append(" "); } if(i==n-1) { for(int j=0;j<=4*i;j++) res.append("*"); } else { for(int j=0;j<=4*i;j++) { if(j%4==0) res.append("*"); else res.append(" "); } } res.append("\n"); } return res.toString(); } // n=5 // * // * * // * * // * * // *****************
python
#等腰三角形 #解1 n = eval(input()) for i in range(n): for a in range(n-i-1): print(' ',end='') for b in range(2*i+1): print('*',end='') print('\n',end='') #解2 def pyramid(n): for i in range(n+1): print(' '*(n-i)+'*'*(2*i-1)) n = eval(input()) pyramid(n) #輸出 # * # *** #***** #----------------------------------------------- n = eval(input()) for i in range(5): print(" "*(n-i),end="") print(" * "*(i+1)) #輸出 # * # * * # * * * # * * * * # * * * * *
倒等腰三角形
java
static String getTri7(int n) { StringBuilder res = new StringBuilder(); for(int i=n;i>0;i--) { for(int j=0;j<n-i;j++) { res.append(" "); } for(int j=0;j<2*i-1;j++) { res.append("*"); } res.append("\n"); } return res.toString(); } // n=3 //***** // *** // *
python
def reverse_pyramid(n): for i in range(n,0,-1): print(' '*(n-i)+'*'*(2*i-1)) n = eval(input()) reverse_pyramid(n) #輸出 #***** # *** # *
直角三角形(直角左下)
java
static String getTri2(int n) { StringBuilder res = new StringBuilder(); for(int i=0;i<n;i++) { for(int j=0;j<i+1;j++) { res.append("*"); } res.append("\n"); } return res.toString(); } // n=3 //* //** //***
python
#直角三角形(直角左下) #解1 t = eval(input()) for v in range(t): for i in range(v+1):#根據外層行號,透過加1可以剛好等於星數 print('*',end='') print('\n',end='') #解2 n = eval(input()) for i in range(n+1): print(i*'*') #輸出 #* #** #*** #****
直角三角形(直角右下)
java
static String getTri4(int n) { StringBuilder res = new StringBuilder(); for(int i=0;i<n;i++) { for(int j=0;j<n-i-1;j++) { res.append(" "); } for(int j=0;j<i+1;j++) { res.append("*"); } res.append("\n"); } return res.toString(); } // n=3 // * // ** //***
python
#直角三角形(直角右下) a = eval(input()) for v in range(a): for j in range(a-v-1): print(' ',end='') for i in range(v+1):#根據外層行號,透過加1可以剛好等於星數 print('*',end='') print('\n',end='') #輸出 # * # ** # *** #****
直角三角形(直角左上)
python
#直角三角形(直角左上) #解1 b = eval(input()) for v in range(b): for i in range(b-v): print('*',end='') print('\n',end='') #解2 n = eval(input()) for i in range(n): print((n-i)*'*') #輸出 #**** #*** #** #*
直角三角形(直角右上)
java
static String getTri3(int n) { StringBuilder res = new StringBuilder(); for(int i=n;i>0;i--) { for(int j=0;j<n-i;j++) { res.append(" "); } for(int j=0;j<i;j++) { res.append("*"); } res.append("\n"); } return res.toString(); } //*** // ** // *
python
#直角三角形(直角右上) a = int(input()) for v in range(a): for i in range(v): print(' ',end='') for j in range(a-v) : print('*',end='') print('\n',end='') #輸出 #**** # *** # ** # *
菱形
python
rows = eval(input()) for i in range(1, rows): for b in range(rows - i): print(' ',end = '') for k in range(i*2-1): if k ==0 or k==i*2-2: print('*',end = '') else: print(' ',end = '') print() for i in range(rows): for b in range(i): print(' ',end = '') for k in range((rows-i)*2-1): if k ==0 or k==(rows-i)*2-2: print('*',end = '') else: print(' ',end = '') print() #輸出 # * # * * # * * #* * # * * # * * # *
*有更好的方法歡迎留言分享
文章標籤
全站熱搜
留言列表