蓝桥杯-打印十字图-java
/* (程序頭部注釋開始)
* 程序的版權(quán)和版本聲明部分
* Copyright (c) 2016, 廣州科技貿(mào)易職業(yè)學(xué)院信息工程系學(xué)生?
* All rights reserved.
* 文件名稱: 藍橋杯賽題???????????????????????????
* 作??? 者:?? 彭俊豪???????????????
* 完成日期:?? 2016?? 年 04月 01日
* 版 本 號:????? 001???
* 對任務(wù)及求解方法的描述部分
* 問題描述:
小明為某機構(gòu)設(shè)計了一個十字型的徽標(biāo)(并非紅十字會啊),如下所示(可參見p1.jpg)
對方同時也需要在電腦dos窗口中以字符的形式輸出該標(biāo)志,并能任意控制層數(shù)。
為了能準(zhǔn)確比對空白的數(shù)量,程序要求對行中的空白以句點(.)代替。
* 輸入描述:? 標(biāo)準(zhǔn)輸入輸出
* 程序輸出: 請仔細觀察樣例,尤其要注意句點的數(shù)量和輸出位置。
* 程序頭部的注釋結(jié)束
*/
上代碼:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int length = 4*n+5;
int zx = length/2;
String arr[][] = new String[length][length];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
arr[i][j] = ".";
}
}
for (int i = zx-2; i < zx+3; i++) {
arr[i][zx] = "$";
arr[zx][i] = "$";
}
//控制外圈的循環(huán)次數(shù),重點!!!
for (int m = 0; m < n; m++) {
for (int i = zx-(2+m*2); i <= zx+2+2*m; i++) {
arr[zx-(4+m*2)][i] = "$";
arr[zx+4+m*2][i] = "$";
arr[i][zx-(4+m*2)] = "$";
arr[i][zx+4+m*2] = "$";
}
for (int i = 1; i <= zx-(2*m+2); i++) {
arr[zx-(2*m+2)][i] = "$";
arr[zx+2+2*m][i] = "$";
arr[i][zx-(2*m+2)] = "$";
arr[i][zx+2+2*m] = "$";
}
for (int i = zx+2*m+2; i <= arr.length-1; i++) {
arr[zx+2*m+2][i] = "$";
arr[zx-2-2*m][i] = "$";
arr[i][zx+2*m+2] = "$";
arr[i][zx-2-2*m] = "$";
}
//消除多余出來的$
for (int i = zx-m*2; i < zx+m*2; i++) {
arr[zx-(3+m*2)][i] = ".";
arr[zx-(3+m*2)][i] = ".";
arr[zx+3+m*2][i] = ".";
arr[zx+3+m*2][i] = ".";
arr[i][zx-(3+m*2)] = ".";
arr[i][zx-(3+m*2)] = ".";
arr[i][zx+3+m*2] = ".";
arr[i][zx+3+m*2] = ".";
}
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[i][j]);
}
System.out.println();
}
}
}
轉(zhuǎn)載于:https://www.cnblogs.com/pengjunhao/p/6670165.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的蓝桥杯-打印十字图-java的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1095 火星人
- 下一篇: HDU 3501 Calculation