歷屆試題 打印十字圖

問題描述

小明為某機構設計了一個十字型的徽標(并非紅十字會啊),如下所示:

..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..

對方同時也需要在電腦dos窗口中以字符的形式輸出該標志,并能任意控制層數。

輸入格式
一個正整數 n (n<30) 表示要求打印圖形的層數。
輸出格式
對應包圍層數的該標志。
樣例輸入1
1
樣例輸出1
..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..
樣例輸入2
3
樣例輸出2
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
提示
請仔細觀察樣例,尤其要注意句點的數量和輸出位置。
思路:我在做這道題的時候發現整個矩陣是中心對稱,其他的規律一直沒有找到,直到看到下面這張圖
才發現這個矩陣要表達的圖案是這個樣子的,很無語,。仔細觀察這個圖我們發現他是中間一個紅色的十,然后向外不斷擴展的一層層的環,n代表環數,,所以我們可以在程序中一層層生成。因為整個圖案是中心對稱的,我們可以先求四分之一,在此基礎上擴展為二分之一,再擴展為全部。
代碼如下
 1 import java.util.Scanner;
 2 
 3     public class Main{
 4         
 5         public static void main(String[] args){ 
 6             Scanner scanner=new Scanner(System.in);
 7             int n=scanner.nextInt();
 8             answer(n);
 9             
10         }
11        public  static void answer(int n)
12        {
13            
14            int m=5+4*n;
15            int middle=m/2+1;
16            char array[][]=new char[m+1][m+1];
17            for (int i = 1; i <= m; i++) {
18             for (int j = 1; j <= m; j++) {
19                 array[i][j]='.';
20             }
21         }
22            for (int i = -2; i <=2; i++) {//初始化中間的十字
23             array[middle+i][middle]='$';
24            }
25            for (int j = -2; j <=2; j++) {
26                array[middle][middle+j]='$';
27             }
28            for (int i = 0; i < n; i++) {//表示層數
29             for (int j = middle-4-2*i; j <=middle; j++) {//1表示左上的一部分2表示右半部分
30                 for (int j2 = middle-4-2*i; j2 <=middle; j2++) {
31                     if(j2!=middle-4-2*i && j2!=middle-3-2*i&&j==middle-4-2*i)
32                     {
33                         array[j][j2]='$';//1
34                         array[j][m-j2+1]='$';//2
35                     }
36                     if(j!=middle-4-2*i && j!=middle-3-2*i&&j2==middle-4-2*i) {
37                         array[j][j2]='$';//1
38                         array[j][m-j2+1]='$';//2
39                     }
40                     if((j==middle-4-2*i || j==middle-3-2*i || j==middle-2-2*i)&&j2==middle-2-2*i) {
41                         array[j][j2]='$';//1
42                         array[j][m-j2+1]='$';//2
43                     }
44                     if((j2==middle-4-2*i || j2==middle-3-2*i || j2==middle-2-2*i)&&j==middle-2-2*i) {
45                         array[j][j2]='$';//1
46                         array[j][m-j2+1]='$';//2
47                     }
48                 }
49             }
50             
51           }
52            for (int i = 1; i <= m/2; i++) {//擴展為全部。
53             for (int j = 1; j <= m; j++) {
54                 array[m+1-i][j]=array[i][j];
55             }
56         }
57            for (int i = 1; i <=m; i++) {
58                for (int j = 1; j <=m; j++) {
59                    System.out.print(array[i][j]);
60                }
61                System.out.println();
62            }
63        }
64  }

?

轉載于:https://www.cnblogs.com/henuliulei/p/10423749.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249593.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249593.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249593.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring BeanDefinition

BeanDefinition&#xff0c;顧名思義&#xff0c;是一個對象(Bean)在Spring中描述&#xff0c;其核心類圖&#xff1a; 從類圖我們詳細了解BeanDefinition。 BeanDefinition接口繼承自BeanMetadataElement和AttributeAccessor兩個接口。 BeanMetadataElement&#xff1a;bean…

樂尚網絡:小程序商城零售行業10大新賦能

微信小程序上線以來&#xff0c;各行各業積極入場小程序&#xff0c;著手打造屬于自己的小程序生態。小程序形態多樣&#xff0c;適合你的小程序才是最好的&#xff1b;在眾多形態中&#xff0c;小程序商城可以說是零售行業的主體形態了&#xff0c;因為通過平臺直接實現交易是…

深度學習中的正則化

正則化方法有如下幾種&#xff1a; 一、參數范數懲罰 其中L2、L1參數正則化介紹與關系如下 1、L2 參數正則化 直觀解釋如下&#xff1a; 2、L1 參數正則化 二、獲取更多數據&#xff08;擴樣本&#xff09; 避免過擬合的基本方法之一是從數據源獲得更多數據&#xff0c;當訓練數…

spring uml

spring執行流程&#xff1a; 1&#xff1a; 加載spring.xml文件 2&#xff1a; 創建xml文件解析器 3&#xff1a; 獲取命名空間&#xff0c;即在spring.xml文件中的 http://www.springframework.org/schema/context 4&#xff1a; 根據命名空間找到命名空間處理器&#xff0c;在…

「造個輪子」——cicada(輕量級 WEB 框架)

前言 俗話說 「不要重復造輪子」&#xff0c;關于是否有必要不再本次討論范圍。 創建這個項目的主要目的還是提升自己&#xff0c;看看和知名類開源項目的差距以及學習優秀的開源方式。 好了&#xff0c;現在著重來談談 cicada 這個項目的核心功能。 我把他定義為一個快速、輕量…

基于owncloud構建私有云儲存網盤

注意事項&#xff1a;需要ping通外網 需要LAMP架構yum -y install httpd php php-mysql mariadb-server mariadb sqlite php-dom php-mbstring php-gd php-pdo 開啟服務[rootowncloud ~]# setenforce 0setenforce: SELinux is disabled[rootowncloud ~]# systemctl stop firewa…

Spring 源碼分析之AbstractApplicationContext源碼分析

首先我覺得分析ApplicationContext必須從它的實現類開始進行分析&#xff0c;AbstractApplicationContext我覺得是一個不錯的選擇&#xff0c;那我們就從這里開始逐一分析吧&#xff0c;首先我自己手畫了一張圖&#xff0c;作為索引吧&#xff0c;其中藍色的為類&#xff0c;紫…

[USACO15FEB]Superbull (最小生成樹)

題目鏈接 Solution 基本上就是個板子. 因為 \(n\) 很小,只有 \(2000\),所以直接暴力建圖,然后跑最小生成樹就好了. Code #include<bits/stdc.h> #define ll long long using namespace std; const int maxn2008; struct sj{int to,fr; ll w; }a[maxn*maxn]; int fa[maxn]…

Java中九大內置對象

1、Request對象 該對象封裝了用戶提交的信息&#xff0c;通過調用該對象相應的方法可以獲取封裝的信息&#xff0c;即使用該對象可以獲取用戶提交的信息。 當Request對象獲取客戶提交的漢字字符時&#xff0c;會出現亂碼問題&#xff0c;必須進行特殊處理。首先&#xff0c;…

ORACLE導出導入意外終止導致 ORACLE initialization or shutdown in progress 問題解決

由于意外情況導致 ORACLE initialization or shutdown in progress 個人理解為主要是歸檔日志出現問題&#xff0c; 首先cmd 1.sqlplus /nolog 進入sqlplus 2.connect /as sysdba 連接dba 3.shutdown normal 卸載數據庫 4.startup mount;重啟例程 5.alter database open;開…

Spring中資源的加載ResourceLoader

Spring中資源的加載是定義在ResourceLoader接口中的&#xff0c;它跟前面提到的抽象資源的關系如下&#xff1a; ResourceLoader的源碼 public interface ResourceLoader { /** Pseudo URL prefix for loading from the class path: "classpath:" */ String CLAS…

Codeforces Round #540 (Div. 3)(部分題解)

鏈接:http://codeforces.com/contest/1118 來源:Codeforces 文章目錄A. Water BuyingB. Tanya and Candies(前綴和)D1. Coffee and Coursework (Easy version)(貪心)D2. Coffee and Coursework (Hard Version)(二分)A. Water Buying 題意:用最小的花費買到剛好合適的東西.我們可…

集合一些方法陷阱

一&#xff1a;asList 數組轉ArrayList陷阱&#xff1a; asList() 源碼&#xff1a;public static <T> List<T> asList(T... a) { return new ArrayList<T>(a); } private final E[] a; ArrayList(E[] array) { if (arraynull) throw new NullPointerExcept…

java項目中的classpath

在java項目中&#xff0c;你一定碰到過classpath&#xff0c;通常情況下&#xff0c;我們是用它來指定配置/資源文件的路徑。在剛開始學習的時候&#xff0c;自己也糊里糊涂&#xff0c;但是現在&#xff0c;是時候弄清楚它到底是指什么了。 顧名思義&#xff0c;classpath就是…

C++命名空間(namespace)

在c中&#xff0c;名稱&#xff08;name&#xff09;可以是符號常量、變量、函數、結構、枚舉、類和對象等等。工程越大&#xff0c;名稱互相沖突性的可能性越大。另外使用多個廠商的類庫時&#xff0c;也可能導致名稱沖突。為了避免&#xff0c;在大規模程序的設計中&#xff…

P1556 幸福的路

題意&#xff1a;平面內有N頭牛$N\le 10$john從&#xff08;0,0&#xff09;出發&#xff0c;最后回到(0,0) 只有走到牛那里john才可以改變方向&#xff0c;否則沿著直線走 問john經過每一頭牛并且在每一頭牛出恰好改變方向一次的方案&#xff08;牛可以經過多次&#xff0c;但…

Class.getResource和ClassLoader.getResource

一案例驅動 二源碼分析 三類加載器ClassLoader 四總結 五參考 一案例驅動 最近加載文件的時候遇到了一個問題&#xff0c;很有意思&#xff01; 具體看下面案例代碼 public class TestClassLoader {public static void main(String[] args) {System.out.println(TestClassLoad…

spring-6、動態代理(cglib 與 JDK)

JDK動態代理與Cglib動態代理 JDK動態代理: 1.能夠繼承靜態代理的全部優點.并且能夠實現代碼的復用.2.動態代理可以處理一類業務.只要滿足條件 都可以通過代理對象進行處理.3.動態代理的靈活性不強.4.JDK 的動態代理要求代理者必須實現接口, , 否則不能生成代理對象. . 1 packag…

JDK安裝與配置(Windows 7系統)

1.前言 安裝之前需弄清JDK、JRE、JVM這幾個概念&#xff0c;不然稀里糊涂不知道自己在裝什么。 &#xff08;1&#xff09;什么是java環境&#xff1a;我們知道&#xff0c;想聽音樂就要安裝音樂播放器&#xff0c;想看圖片需要安裝圖片瀏覽器&#xff0c;同樣道理&#xff0c;…

UVA839

這道題又是一道遞歸的題目 先貼上代碼 //這種沒有明確說個數的動態分配還是得用new #include<cstdio> #include<iostream> using namespace std; struct mobile {int WL,DL,WR,DR;mobile *left,*right;mobile(mobile *aNULL,mobile*bNULL):left(a),right(b){} }; m…