Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
37
Task/100-doors/MySQL/100-doors.sql
Normal file
37
Task/100-doors/MySQL/100-doors.sql
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
DROP PROCEDURE IF EXISTS one_hundred_doors;
|
||||
|
||||
DELIMITER |
|
||||
|
||||
CREATE PROCEDURE one_hundred_doors (n INT)
|
||||
BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS doors;
|
||||
CREATE TEMPORARY TABLE doors (
|
||||
id INTEGER NOT NULL,
|
||||
open BOOLEAN DEFAULT FALSE,
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
SET @i = 1;
|
||||
create_doors: LOOP
|
||||
INSERT INTO doors (id, open) values (@i, FALSE);
|
||||
SET @i = @i + 1;
|
||||
IF @i > n THEN
|
||||
LEAVE create_doors;
|
||||
END IF;
|
||||
END LOOP create_doors;
|
||||
|
||||
SET @i = 1;
|
||||
toggle_doors: LOOP
|
||||
UPDATE doors SET open = NOT open WHERE MOD(id, @i) = 0;
|
||||
SET @i = @i + 1;
|
||||
IF @i > n THEN
|
||||
LEAVE toggle_doors;
|
||||
END IF;
|
||||
END LOOP toggle_doors;
|
||||
|
||||
SELECT id FROM doors WHERE open;
|
||||
END|
|
||||
|
||||
DELIMITER ;
|
||||
|
||||
CALL one_hundred_doors(100);
|
||||
Loading…
Add table
Add a link
Reference in a new issue