200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 点击我的世界显示启动更新失败 – java – 前端

点击我的世界显示启动更新失败 – java – 前端

时间:2019-01-09 06:40:51

相关推荐

点击我的世界显示启动更新失败 – java – 前端

画图画图(不画图难以会意)。下面是一个草图?(找了个在线白板画的,漂亮吧~^(* ̄(oo) ̄)^)。

如图所示,假设要画一个规格为2a*2b的◇。a,b分别为对应方向的中心位置。不难看出,程序一共需要打印2b+1行,2a+1列(因为第0行0列也是需要打印的,但是程序是从0开始计数的,因此最后的行列下标就是2a和2b,2a+1和2b+1是数量)。

程序打印通常会使用空格和*作为打印菱形的字符,由于基本的输出单位是字符(相当于菱形内的所有角的大小是固定的,不论多么大的菱形都是相似的),所以2a和2b会相互制约。偶想打印一个10*50的菱形时,当打印到第5行是就已经从横向偏移量为0的位置开始打印了,第6行将会从-1列开始打印,这样打印出的图案将会是一个不完成的菱形,如下图,虚线部分将不会被打印。

程序以行为输出,因此大家不在控制y轴,只通过控制x轴方向的a来控制菱形的大小。大家不妨来归纳一下打印的规则:

第0行需要打印a个空格、打印一个*、换行。

第1行需要打印a-1个空格、打印1个*、打印1个空格、打印1个*、换行。

第2行需要打印a-2个空格、打印1个*、打印3个空格、打印1个*、换行。

第3行需要打印a-3个空格、打印1个*、打印5个空格、打印1个*、换行。

第n行需要打印a-n个空格、打印1个*、打印2n-1个空格、打印1个*、换行。

一直需要打印到n==a。打印0个空格、打印1个*、打印2a-1个空格、打印1个*、换行。

之后开始往回画。

第a+1行需要打印1个空格、打印1个*、打印2a-3个空格、打印1个*、换行。

第a+2行需要打印2个空格、打印1个*、打印2a-5个空格、打印1个*、换行。

第a+m行需要打印m个空格、打印1个*、打印2a-(2m+1)个空格、打印1个*、换行。

当打印到2a-(2m+1)<0[2a-2m<1=>m==a]时,则只直接打印换行,结束程序。

不难计算得出,一共需要打印2a+1行(和上面的2b+1相对应)。

示例如下图,网格里的大点点就是大家需要打印的点:

这样,伪代码基本就出来了:

参数:a 横向的中心点

// 打印上半截

for(n = 0; i <= a; n ++){

// 打印一行内容

for(i = 0; i < a-n; i ++){

print(‘ ‘);//打印a-n个空格

}

print(‘*’);//打印1个*

if((2n – 1) < 0){

print(‘\n’);// 未打印空格直接换行

continue;

}

for(i = 0; i < (2n – 1); i ++){

print(‘ ‘);//打印2n – 1个空格

}

print(‘*’);// 打印1个*

print(‘\n’);// 换行

}

// 打印下半截

for(m = 1; m <=a; m ++){

for(i = 0; i < m; i ++){

print(‘ ‘);// 打印m个空格

}

print(‘*’);// 打印1个*

if(2a-(2m+1) < 0){

print(‘\n’);// 换行

break;// 终止程序

}

for(i = 0; i < 2a-(2m+1); i ++){

print(‘ ‘);// 打印2a-(2m+1)个空格

}

print(‘*’);// 打印1个*

print(‘\n’);// 换行

}

以上就思路啦,赶紧去试一试吧~

以上内容只是说明了思路,大家还有什么好方法呢?一起来聊聊吧~

偶是一名程序员,更多精彩请关注:空心小窝头

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。