日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java打印两个小人_[原创]Java画小人与阶梯问题的解答

發(fā)布時間:2025/3/12 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java打印两个小人_[原创]Java画小人与阶梯问题的解答 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

package test;

/**

#Python源代碼:

#By:Cat73 QQ 1901803382

#2014年7月22日19:33:12

#畫圖函數 width:臺階的寬度(至少為4) hight:臺階的高度(至少為4) count:臺階的數量(至少為3)

def paint(width, hight, count):

for i in range(1, count):

other(width, hight, count, i)

#畫出最后一行

printCount('*', (width - 1) * (count) + 1, True)

#畫出一級臺階

def other(width, hight, count, num):

paintPerson(width, hight, count, num, 0)

printCount('*', width)

printCount(' ', (width - 1) * (num - 1) - 1)

if(num == 1):

print('')

else:

print('*')

for i in range(hight - 2):

paintPerson(width, hight, count, num, i + 1)

printCount('*', 1)

printCount(' ', (width - 1) * (num) - 1)

printCount('*', 1, True)

#畫小人 width/hight/count/num:外部傳遞 n:小人的第幾行

def paintPerson(width, hight, count, num, i):

tmp = int(width / 2) - 2

printCount(' ', (width - 1) * (count - num - 1) + tmp)

n = (hight - 1) - i

if(n == 3):

print(" o ", end="")

elif(n == 2):

print("/|\\", end="")

elif(n == 1):

print("/ \\", end="")

else:

print("? ?", end="")

printCount(' ', width - 4 - tmp)

#打印一個字符一定次數 c:要打印的字符 i:要打印的次數 n:是否在打印完成后換行

def printCount(c, i, n = False):

for i in range(i):

print(c, end="")

if(n):

print('')

#調用畫圖測試

paint(4, 4, 3)

paint(5, 4, 4)

paint(8, 8, 5)

*/

/**

* 畫小人與階梯的類(翻譯自Python代碼) 多線程不同步

* @author Cat73

*/

public final class PaintLadder {

/**

* 要被返回的字符緩存

* */

private StringBuffer buffer = null;

/**

* 操作緩存的指針

*/

private int pBuffer;

/**

* 畫小人階梯

* @param width 階梯寬度

* @param hight 階梯高度

* @param count 階梯數量

* @return 畫好的字符串

*/

public String paint(int width, int hight, int count) {

//初始化緩存

int length = ((hight - 1) * (count - 1) + 1) * ((width - 1) * count + 2);

buffer = new StringBuffer(length);

pBuffer = 0;

//畫出每一級階梯

for (int i = 1; i < count; i++) {

other(width, hight, count, i);

}

//畫出最后一行

printCount('*', (width - 1) * (count) + 1, true);

//將結果返回

return buffer.toString();

}

/**

* 畫出每一層階梯

* @param width 直接從外部傳遞

* @param hight 直接從外部傳遞

* @param count 直接從外部傳遞

* @param num 正在畫第幾級階梯

*/

private void other(int width, int hight, int count, int num) {

//畫出一層階梯的最上方一行

paintPerson(width, hight, count, num, 0);

printCount('*', width, false);

printCount(' ', (width - 1) * (num - 1) - 1, false);

if (num == 1) {

printCount('\n', 1, false);

} else {

printCount('*', 1, true);

}

//畫出一層階梯的其他行

for (int i = 0; i < hight - 2; i++) {

paintPerson(width, hight, count, num, i + 1);

printCount('*', 1, false);

printCount(' ', (width - 1) * (num) - 1, false);

printCount('*', 1, true);

}

}

/**

* 畫每一行小人以及小人之前的空格

* @param width 直接從外部傳遞

* @param hight 直接從外部傳遞

* @param count 直接從外部傳遞

* @param num 直接從外部傳遞

* @param i 該級階梯的第幾行

*/

private void paintPerson(int width, int hight, int count, int num, int i){

//tmp是為了讓小人居中用的 畫出小人前面的空格

int tmp = (int)(width / 2) - 2;

printCount(' ', (width - 1) * (count - num - 1) + tmp, false);

//畫出小人的身體

int n = (hight - 1) - i;

switch(n){

case 3:

outBuffer(" o ");

break;

case 2:

outBuffer("/|\\");

break;

case 1:

outBuffer("/ \\");

break;

default:

//不需要畫小人的用空格代替

outBuffer("? ?");

}

//畫出小人后的空格

printCount(' ', width - 4 - tmp, false);

}

/**

* 打印一個字符N次(這里沒打印 調用了加入緩存)

* @param c 要打印的字符

* @param count 要打印的次數

* @param enter 打印完后是否要加換行

*/

private void printCount(char c, int count, boolean enter) {

for (int i = 0; i < count; i++) {

outBuffer(c);

}

if (enter) {

outBuffer('\n');

}

}

/**

* 加入字符串到緩存

* @param s 要加入緩存的字符串

*/

private void outBuffer(String s) {

buffer.insert(pBuffer, s);

pBuffer += s.length();

}

/**

* 加入字符到緩存

* @param c 要加入緩存的字符

*/

private void outBuffer(char c) {

buffer.insert(pBuffer, c);

pBuffer++;

}

}

總結

以上是生活随笔為你收集整理的java打印两个小人_[原创]Java画小人与阶梯问题的解答的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天澡天天狠天天天做 | 国产精品久久久久久亚洲毛片 | 清清草免费视频 | 日本一区视频在线 | 91精品国产综合久久精品图片 | 成年人免费在线看 | 性欧美丰满熟妇xxxx性仙踪林 | 综合久久久久久 | 国产视频久久久久久久 | 黑人精品无码一区二区三区 | 日韩成人精品一区二区三区 | 精品久久久99 | 三男一女吃奶添下面 | 绿帽h啪肉np辣文 | 日韩 国产| 免费se99se | 久久永久视频 | 黑白配在线观看免费观看 | 福利视频三区 | 天天摸日日摸 | 国产一区二区三区自拍 | 中文字幕电影一区 | 欧美做爰性生交视频 | 这里只有精品在线观看 | 99免费在线观看视频 | 一区二区三区天堂 | 精品无码人妻一区 | 亚洲国产精品久久AV | 欧美极品喷水 | 日韩福利在线播放 | 中文字幕人妻一区二区三区视频 | 日本aa大片 | 欧美日韩国产区 | 日韩精品一区二区亚洲av性色 | 国产自在线 | 欧美色图影院 | 日韩欧美视频免费在线观看 | 大尺度一区二区 | 中文字幕日韩一区 | 国产精品伦一区二区三级视频 | 国产做爰高潮呻吟视频 | 性欧美日韩| www国产www| 免费人妻精品一区二区三区 | 国产熟妇乱xxxxx大屁股网 | 亚洲天堂男人av | 久久深夜 | 日韩一级久久 | 一级片99 | 男女做爰猛烈吃奶啪啪喷水网站 | av超碰| 亚洲精品系列 | 亚洲男人的天堂在线观看 | 三女警花合力承欢猎艳都市h | 一区三区视频 | 午夜久久久 | 啪啪免费 | 日韩成人av网 | 久久理论视频 | 日日夜夜人人 | 毛片免费播放 | 精品无码一区二区三区电影桃花 | 成人福利在线播放 | 男女猛烈无遮挡免费视频 | 日本成人不卡 | 黄色美女视频网站 | 爱涩av| 天天爱天天做天天爽 | 国产女主播视频 | 天天摸日日 | 精品99久久久 | 丰满人妻一区二区三区无码av | 欧美乱色| 久久久九九 | 国产日产欧美一区二区 | 亚洲区色| 天天爽夜夜爽一区二区三区 | 日日夜夜狠狠干 | 影音先锋在线国产 | 俄罗斯av片 | 成人区人妻精品一区二 | 日韩在观看线 | 欧美国产在线看 | 天天视频入口 | 欧美综合网站 | 中国毛片网| 黄色调教视频 | 电影一区二区三区 | 有码在线 | 美国毛片av | 狠狠欧美| 日皮毛片 | 中文字幕在线观看第二页 | 91av在| 特黄特色特刺激免费播放 | 成人午夜激情 | 九九九九热 | 精品国产av 无码一区二区三区 | 欧美久久久影院 |