如何安裝考場

2021-05-04 05:35:23 字數 1414 閱讀 5427

有一表:

編號 考號  姓名

1  cc01  aa

1  cc02  bb

1  cc03  cc

1  cc04  dd

1  cc05  ee

...

我的目的就是根據每個考室的人數(使用者輸入)自動生成乙個表,如按乙個考室3個考生的效果如下:

考室  考號區間

1    cc01-cc03

2    cc04-cc05

create table tb(編號 int,考號 char(4),姓名 varchar(10))

insert tb select 1 , 'cc01' , 'aa'

insert tb select 1 , 'cc02' , 'bb'

insert tb select 1 , 'cc03' , 'cc'

insert tb select 1 , 'cc04' , 'dd'

insert tb select 1 , 'cc05' , 'ee'

goselect ceiling(cnt/3.0) row,* into t

from

( select *,cnt=(select count(*) from tb where 考號<=a.考號)

from tb a

) tt

gocreate function dbo.f_str(@row int)

returns varchar(100)

asbegin

declare @re varchar(100)

set @re=''

select top 1 @re=考號 from t where row=@row order by 考號

select top 1 @re=@re+'-'+考號 from t where row=@row order by 考號 desc

return @re

endgo

select row [室號],dbo.f_str(row) [考號區間]

from t

group by row

drop table tb,t

drop function f_str

/*室號 考號區間

-------------------- --------------

1 cc01-cc03

2 cc04-cc05

(2 行受影響)

分考場問題

問題大致如下 有n個學生參加考試,每個考場裡的任意倆學生都不能認識,求需要的最少的考場的數量 首先輸入學生數量n,輸入m 接下來m行,每行兩個資料i,j,表示i與j認識 樣例輸入 5 81 2 1 31 4 2 32 4 2 53 4 4 5其結果為4 首先如果是假如任何認識的學生在同一考場的話用並...

回溯 分考場

問題描述 n個人參加某項特殊考試。為了公平,要求任何兩個認識的人不能分在同乙個考場。求是少需要分幾個考場才能滿足條件。輸入格式 第一行,乙個整數n 1輸出格式 一行乙個整數,表示最少分幾個考場。樣例輸入 5 81 2 1 31 4 2 32 4 2 53 4 4 5樣例輸出 4 樣例輸入 5 101...

回溯 分考場

問題描述 n個人參加某項特殊考試。為了公平,要求任何兩個認識的人不能分在同乙個考場。求是少需要分幾個考場才能滿足條件。輸入格式 第一行,乙個整數n 1輸出格式 一行乙個整數,表示最少分幾個考場。樣例輸入58 1 21 3 1 42 3 2 42 5 3 44 5 樣例輸出 4樣例輸入510 1 21...