Diese Herausforderung wird von einem Bild inspiriert , die auf Facebook schweift oft , dass sieht aus wie diese . Mit der Ausnahme, dass unser Basisquadrat ungefähr so aussieht:
┌─┬───┬─┐
├─┼─┬─┼─┤
├─┼─┴─┼─┤
├─┼─┬─┼─┤
└─┴─┴─┴─┘
Das Quadrat besteht aus n x m
1x1 Quadrat. Sie müssen zählen, wie viele Unterquadrate (1x1, 2x2, 3x3, 4x4, 5x5 usw.) in dieses Quadrat passen. Bei Quadraten können einige Gitterlinien fehlen (wie im obigen Beispiel) oder sie können wie im folgenden Beispiel vollständig sein. Eine rechnerische Aufteilung ist daher meines Wissens nicht möglich.
Eingänge:
- Die Anzahl der Zeilen (
n
) der Eingabe, um das Quadrat zu erstellen. - Ein Quadrat aus den folgenden Zeichen:
─
┐
┌
└
┴
┘
┬
├
┤
┼
|
übern
Eingabezeilen.
Ausgabe:
- Die Anzahl der Quadrate beliebiger Größe, die in das Eingabequadrat passen können (wir möchten hier nur eine einzige Zahl, keine Zahl für jede Größe).
Gewinnkriterium:
Die kleinste Antwort (Anzahl der Bytes) gewinnt.
Testfälle:
Im:
5
┌─┬─┬─┬─┐
├─┼─┼─┼─┤
├─┼─┼─┼─┤
├─┼─┼─┼─┤
└─┴─┴─┴─┘
Aus: 30
Im:
3
┌─┬─┐
├─┼─┤
└─┴─┘
Aus: 5
Im:
5
┌─┬─┐
├─┴─┤
├───┤
├─┬─┤
└─┴─┘
Aus: 7
Im:
4
┌─┬─┬─┬─┬─┬─┐
├─┼─┼─┼─┼─┼─┤
├─┼─┼─┼─┼─┼─┤
└─┴─┴─┴─┴─┴─┘
Aus: 32
Im:
2
┌─┐
└─┘
Aus: 1
Im:
4
┌─┬─┬─┬─┬─┬─┐
├─┴─┼─┼─┼─┴─┤
├─┬─┼─┼─┼─┬─┤
└─┴─┴─┴─┴─┴─┘
Aus: 22
m*(m+1)*(3*n-m+1)/6
für einm
durchn
Rechteck mitn >= m
(Abmessungen um eins versetzt, da der Eintrag eher von Punkten als von Quadraten selbst spricht) gibtAntworten:
JavaScript (ES6), 292 Bytes
306 325Bearbeiten Ich habe die Byteanzahl völlig falsch,
korrigiert nun thx http://bytesizematters.com/richtig für das letzte Mal , dass ich Hoffnung thx Cᴏɴᴏʀ O'Bʀɪᴇɴ sehen https://goo.gl/LSHC1U (und 1 Byte weniger wörtlich mit Zeilenumbruch statt '\ n')Länger als erwartet (wahrscheinlich können ein paar Bytes mehr entfernt werden)
Alle möglichen Felder werden überprüft und gezählt.
Die
r
Funktion ordnet jedes Zeichen einer Bitmap zu, die hatEin Quadrat von beliebiger Größe muss haben
Prüfung
quelle