1. 程式人生 > >陣列中的開燈問題和蛇形填數

陣列中的開燈問題和蛇形填數

#include <iostream>
#include <string.h>
using namespace std;




//開燈問題 
int main()
{
int n,k;
cin>>n>>k;
int a[n+1];       //燈為0是關著 
memset(a,0,sizeof(a));
for(int i=1;i<=k;i++)         //人 
{
for(int j=1;j<=n;j++)          //燈 
{
if(j%i==0) a[j] = !a[j];
}
}
for(int i=1;i<=n;i++)
{
if(a[i] == 1)
cout<<i<<" ";

cout<<endl;

}

#include <iostream>
#include <string.h>
using namespace std;

#define max 10
int a[max][max];
int main()
{
int n;
cin>>n;
memset(a,0,sizeof(a));
int thenum = 0;
int x = 0,y = n-1;
thenum = a[x][y] = 1;        //第一行最右邊為最小,1 

//在這個while中先判斷再移動 
while(thenum < n*n)
{
//先一直往下走走到底,但是如果不是最外行就要判斷不要重複覆蓋了外行的資料  
while(x + 1 <n && !a[x+1][y])  a[++x][y] = ++thenum;
//走到最底下在往左走
while(y - 1>=0&& !a[x][y-1])  a[x][--y] = ++thenum;
//往上走
while(x - 1>=0&& !a[x-1][y]) a[--x][y] = ++thenum;
//往右
while(y + 1<n&&!a[x][y+1]) a[x][++y] = ++thenum; 
}
for(x=0;x<n;x++)
{
for(y=0;y<n;y++)
{
cout<<a[x][y]<<" ";
}
cout<<endl;
}
}

相關推薦

陣列問題蛇形

#include <iostream>#include <string.h>using namespace std;//開燈問題 int main(){int n,k;cin>>n>>k;int a[n+1];       //

蛇形

first cnblogs ems 輸出 lan size 判斷 return 哪些 競賽初入門,發現題目是真的挺難的,一道題目看下來完全不知道在說什麽,或者是沒頭緒,看了答案之後才慢慢能理解,嘛,一步一步來吧。 開燈問題,有n盞燈,編號為1-n, 第一個人把所有的燈都打

演算法奧祕之陣列實現問題、蛇形

哈哈哈,時隔n個月,今天看了劉汝佳老師的《演算法入門經典》,感覺厲害了,忍不住想要分享給大家,於是再次開啟寄幾小小的部落格 學c語言也有一段時間了,逐漸發現,演算法才是語言的精髓!於是拿起小本本,開始探索,今天是第一篇,以後或許還有下集哈哈哈 question1:開燈問題

蛇形蛇形(基礎模擬練習)

code 練習 color 順序 printf urn pri int 蛇形填數 1 /* 2 問題 輸入矩陣的規模n,先將數按照下,右,上,左的順序填入矩陣,再按照這樣的順序取出。 3 解題思路 模擬,按照筆的順序存入取出,註意初始化的時候一定將矩陣全部初始化。

蛇形 陣列解法(最簡單)

解法 你能發現這裡面的數為1到 n*n;  所以寫個迴圈即可 while(count<n*n){ while(x+1<n && !a[x+1][y]

React:JS的this箭頭函

-c c++ upload per 初始 正常 develop pan pre JS中的this和純面向對象(java,c++)中的this有點不大一樣,其原因就是作用域不同,導致JS中的this的指向不明確,在java中的this指當前對象的this或當前類的this,在

DB2的NVLNVL2函

class 例子 source 數據 日期 sel 必須 sql nvl2 NVL函數是一個空值轉換函數 NVL(表達式1,表達式2) 如果表達式1為空值,NVL返回值為表達式2的值,否則返回表達式1的值。 該函數的目的是把一個空值(null)轉換成一個實際的值。其表達式的

蛇形

amp size ace define max 要求 移動 循環控制 src 在n*n的方陣裏填入1,2,...,n*n,要求甜填成蛇形。 我的程序 #include<iostream>#include<string.h>using nam

NYOJ 33 蛇形——————思維

蛇形填數 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 在nn方陳裡填入1,2,…,nn,要求填成蛇形。例如n=4時方陳為: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 輸入 直接輸入方陳的維數,即n的值

去掉陣列第一個最後一個元素php

使用 array_shift() 刪除陣列的第一個元素,例如: $arr=array('apple','banana','orange'); $res=array_shift($arr); 使用 array_pop()刪除陣列的最後一個元素,例如: $arr=array('apple','b

蛇形問題

題目描述 在n×n方針裡輸入1,2,…,n*n,要求填成蛇形。例如,n=4時方陣為: 上面的方針中,多餘的空格只是為了便於觀察規律,不必嚴格輸出。n<=8。 題目分析 首先看到方針先要明白題目要求具體是從哪裡開始,即“蛇頭”在哪,最後要看明白“蛇尾”在哪。 如圖,整個蛇形填數的

關於蛇形

蛇形填數的核心就是轉向, while(x+1<n&&!a[x+1][y])  a[++x][y]==++count; 每一個方向,都有臨界轉向範圍即x+1<n  和下一個陣列內是否有數值。 類似的,矩形環繞和三角環繞,  

快速排除(最優法,不是快排)求隨機陣列第k大數(c++)(讓隨機沒寫)

#include <iostream> using namespace std; int get_kth(int arr[], int n, int k) {     int left = 0;     int right = n - 1;     while

T38:陣列只出現一次的

1.https://blog.csdn.net/blubluhao/article/details/79846042 2.https://blog.csdn.net/blubluhao/article/details/79846042 import java.util.HashSet; im

ACM蛇形

蛇形填數 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 在n*n方陳裡填入1,2,...,n*n,要求填成蛇形。例如n=4時方陳為: 10 11 12 1  9  16 13 2  8  15 14 3  7   6   5  4

橙白時光OJ 1032 蛇形

橙白時光OJ 1032 蛇形填數 描述 在nn方陳裡填入1,2,…,nn,要求填成蛇形。例如n=4時方陣為: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 輸入 直接輸入方陣的維數,即n的值。(n<=100) 輸出 輸出結果是蛇形方陣。 解題思路

[牛客算法系列] 在另個排序陣列找到第k小的

題目 給定兩個有序陣列arr1,arr2, 再給定一個整數k, 返回所有數中第k 小的數。 比如 arr1 = [1,2,3,4,5], arr2 = [3,4,5], k =1. 1 是所有數中第

【ACM】蛇形

先判斷,再移動,而不是發現越界了再退回來。  #include "stdio.h" #include "string.h" #define maxn 20 int a[maxn][maxn]; int

(pyhon)給定一個整數陣列 nums 一個目標值 target,請你在該陣列找出為目標值的那 兩個 整數,並返回他們的陣列下標。

方法一:使用最容易理解的遍歷陣列進行查詢 def solution(nums,target): #如果列表長度小於2,則直接結束 if len(nums) < 2: return #兩次迴圈列表,分別對列表中的所有可能的數字進行相加

leetcode 59. Spiral Matrix II【蛇形

Given a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral orde