Schreiben Sie ein Programm und lösen Sie das unten stehende Problem in einer für Sie neuen Sprache:

In einer High School mit 1000 Schülern gibt es 1000 Schließfächer. Das Problem beginnt damit, dass der erste Schüler alle 1000 Schließfächer öffnet. Als nächstes schließt der zweite Schüler die Schließfächer 2,4,6,8,10 und so weiter, um die Schließfächer 1000 zu schließen. Der dritte Schüler ändert den Status (öffnet Schließfächer geschlossen, schließt Schließfächer offen) für Schließfächer 3,6,9,12,15 und so weiter. Der vierte Schüler ändert den Zustand der Schließfächer 4,8,12,16 und so weiter. Dies geht so lange weiter, bis jeder Schüler an der Reihe war. Wie viele Schließfächer werden am Ende geöffnet sein? Wie lautet die Formel?

Finden Sie die Lösung in Dart unten:

 

import 'dart:io';
int numberOfLockers = 1000;
// Lockers start all open because of the first student
List<String> lockers = new List.filled(numberOfLockers + 1, 'open');
main() {
for (var student = 2; student <= numberOfLockers; student++) {
// For the student, open the locker if closed, or close if open
for (var locker = student; locker <= numberOfLockers; locker += student) {
lockers[locker] = lockers[locker] == 'open' ? 'closed' : 'open';
}
}
// Count of lockers remaining open
int total = 0;
// List the lockers that remain open
for (var locker = 1; locker <= numberOfLockers; locker ++ ) {
if (lockers[locker] == 'open') {
stdout.write("${locker} ");
total += 1;
}
}
print("\nThere are ${total} lockers remaining open.");
}
// 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961
// There are 31 lockers remaining open.
view raw puzzle3.dart hosted with ❤ by GitHub

Mehr davon

Get in touch

In Kontakt kommen

Frankfurt am Main, Germany (Sales)

60354

Eckenheimer Schulstraße, 20

+38 (098) 630-49-85

info@a5.ua

Kharkiv, Ukraina

61023

Trinklera Strasse, 9

+38 (050) 908-31-07

info@a5.ua

Burgas, Bulgaria (Development)

8008

бул. „Транспортна“ 15, Northern Industrial Zone

+359 877 350129

info@a5.ua