螺旋列印數字矩陣
#include<iostream.h> void main() { int n,i=0,j=0,k=1,q=1; int a[50][50]={0}; cout<<"Input n<50"<<endl; cin>>n; while(1) { if(q==1) { while(1) { a[i][j++]=k++; if(j>=n||a[i][j]!=0) { j--; k--; break; } } q++; } if(q==2) { while(1) { a[i++][j]=k++; if(i>=n||a[i][j]!=0) { i--; k--; break; } } q++; } if(q==3) { while(1) { a[i][j--]=k++; if(j<0||a[i][j]!=0) { j++; k--; break; } } q++; } if(q==4) { while(1) { a[i--][j]=k++; if(i<0||a[i][j]!=0) { i++; k--; break; } } q=1; } if(k==n*n) break; } for(i=0;i<n;i++) { for(j=0;j<n;j++) { cout<<a[i][j]<<" "; } cout<<endl; } }
輸入數字2,則程式輸出:
1 2
4 3
輸入數字3,則程式輸出:
1 2 3
8 9 4
7 6 5
輸入數字4, 則程式輸出:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
相關推薦
螺旋列印數字矩陣
#include<iostream.h> void main() { int n,i=0,j=0,k=1,q=1; int a[50][50]={0}; cout<<"I
1,2,3…n*n 的數字按照順時針螺旋的形式列印成矩陣(遞迴)
題目:1,2,3…n*n 的數字按照順時針螺旋的形式列印成矩陣,如下: 輸入數字2,則程式輸出: 1 2 4 3 輸入數字3,則程式輸出: 1 2 3 8 9 4 7 6 5 輸入數字4, 則程式輸出
列印螺旋數字矩陣
1:如下,是一個“4×4”的數字矩陣,請找出其中的規律,然後編寫一個程式,要求能打印出“N×N”時的數字矩陣: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 請用自己最熟
matlab 將數字矩陣轉換成圖像
之間 灰度 範圍 黑白 最好 沒有 imshow 原理 記錄 MATLAB中,常常使用imshow()函數來顯示圖像,而此時的圖像矩陣可能經過了某種運算。在matlab中,為了保證精度,經過了運算的圖像矩陣I其數據類型會從unit8型變成double型。如果直接運行imsh
蛇陣數字矩陣
max spa name eof -- while fin size sizeof #include<bits/stdc++.h> using namespace std; #define maxn 100 int a[maxn][maxn]; int main
ZZULIOJ.1108: 列印數字圖形(函式專題)
1108: 列印數字圖形(函式專題) 題目描述 從鍵盤輸入一個整數n(1≤n≤9),打印出指定的數字圖形。要求在程式中定義並呼叫如下函式:PrintSpace(m)用來輸出m個空格;PrintLine(m)來輸出一行中的數字串"12…m…21"(該行中的最大數字是m)。函式原型如下:
某比賽小記5- 螺旋遍歷矩陣
題目:給定一個二維矩陣,從[0][0]開始向右,按順時針遍歷全部資料,比如[[a,b][c,d]],遍歷順序就是a,b,d,c。最後將遍歷的元素用逗號連線,列印整個遍歷結果。給定二維矩陣見檔案。 題解:本題思路很容易設計,就是每次訪問越界或者是訪問到已經訪問的元素就向右轉向,當右邊沒有路了則結束。難點主要是
列印迴圈矩陣
1 #include <stdio.h> 2 3 int main() { 4 int r, l; //記錄行數rows和列數lines 5 printf("輸入行數和列數,以空格分隔:") 6 scanf("%d %d", &r, &
1108: 列印數字圖形(函式專題)
題目描述 從鍵盤輸入一個整數n(1≤n≤9),打印出指定的數字圖形。要求在程式中定義並呼叫如下函式:PrintSpace(m)用來輸出m個空格;PrintDigit(m)來輸出一行中的數字串"12...m...21"(該行中的最大數字是m)。函式原型如下: void Print
從1到n 列印數字 (使用字串表示一個大數)
使用字串表示一個大數 題目:列印從1到n 的數 n是多大我們並不知道,有可能已經超出了計算機所能表示的最大的數,所以此時需要使用字串或陣列來表示一個任意大小的數,並對其進行列印,對於列印下面有兩種方法 使用加法模擬 void PrintNum(int N
面試題:常見的多執行緒實戰手撕程式碼(順序列印數字、字母)
問題一: 一個多執行緒的問題,用三個執行緒,順序列印字母A-Z,輸出結果是1A 2B 3C 1D 2E…列印完畢最後輸出一個Ok。 程式碼一: public class forCharacter { private static char c = 'A';
多執行緒交叉列印數字,執行緒切換,結果通知思想
一道面試題,兩個執行緒交叉列印奇偶數。 這裡會運用synchronized鎖機制,wait和notifyAll方法,當然也可以使用ReentrantLock,本質鎖競爭 僅線上程需要的時候持有鎖,其餘時間檢查自身執行緒鎖,釋放執行緒自己持有的鎖。 public clas
計蒜客列印鋸齒矩陣
1.問題描述: 2.演算法分析: 因為發現數組的長度不是固定的,而是可變的,所以我們不能使用靜態陣列,我們可以使用動態陣列vector來做。先確定使用的資料結構vector 然後就是先對陣列賦值
a,b,c三個執行緒按順序列印數字1-96 執行緒a列印1,b列印2,c列印3
程式的主入口 公共的物件鎖 列印方法的核心執行緒 具體的實現程式碼 PrintThread public class PrintThread implements Runnable { private String name;//執行緒名稱
列印數字1-20,一個執行緒列印奇數,一個執行緒列印偶數
main.class public class Solution1006 { public static void main(String[] args) { MyObje
3個執行緒順序列印數字
問題:啟動3個執行緒A、B、C,使A列印0,然後B列印1,然後C列印2,A列印3,B列印4,C列印5,依次類推。思路:每個執行緒給定一個編號,每個執行緒判斷當前是否已經輪到自己列印:如果沒輪到,就wait等待;如果輪到,則列印當前數字,並喚醒其他執行緒。判斷是否已經輪到自己列
遞迴入門(十) ---- 列印數字(遞迴原理詳解)
wechat:812716131 ------------------------------------------------------ 技術交流群請聯絡上面wechat ----------------------------------------------
Java n個執行緒輪流列印數字的問題
一. 實現兩個執行緒,輪流打印出數字,如下: bThread --> 10 aThread --> 9 bThread --> 8 aThread --> 7 bThread --> 6 aThread --> 5 bThread -
java多執行緒交替列印數字和字母
題目: 1.開啟兩個執行緒,一個執行緒列印A~Z,另一個執行緒列印1~52的資料。 2.實現交替列印,輸出結果為12A34B………..5152Z. 3.請用多執行緒方式實現。 使用阻塞佇列實現
多執行緒同步之事件 -- 2個執行緒交替列印數字
有段時間沒有接觸多執行緒相關的知識了,難免會遺忘或者生疏。多執行緒通訊和同步相關的知識運用比較廣,而且比較常見。今天通過2個執行緒交替列印數字的例子,來整理下多執行緒序相關的程式設計方式。這裡2個執行緒直接通過一個event進行同步。 我們通過CreateE