Heim  >  Artikel  >  Wie lösen Programmierer schwierige Probleme und erhalten den QQ-Account der Göttin?

Wie lösen Programmierer schwierige Probleme und erhalten den QQ-Account der Göttin?

小云云
小云云Original
2017-11-07 11:50:252318Durchsuche

Ich traf eine Göttin und dachte, ich könnte ihr Herz mit meinem Aussehen erobern, also ergriff ich die Initiative und bat die Göttin um einen QQ-Account. Unerwarteterweise stellte mir die Göttin eine Frage Als ob sie wirklich eine Programmiererin wäre, lautet der Titel wie folgt:
Die Göttin gab eine Reihe von Zahlen (keine QQ-Nummern). Die QQ-Nummer kann nach den folgenden Regeln gefunden werden: Löschen Sie zuerst die erste Zahl und dann die zweite Zahl einfügen Gehen Sie zum Ende dieser Zahlenfolge, löschen Sie die dritte Zahl und fügen Sie die vierte Zahl am Ende dieser Zahlenfolge ein ... In dieser Schleife, bis die letzte Zahl übrig ist , löschen Sie die letzte Zahl und löschen Sie sie wie gerade. Verbinden Sie diese Zahlen der Reihe nach, um die QQ-Nummer der Göttin zu erhalten.

Wie lösen Programmierer schwierige Probleme und erhalten den QQ-Account der Göttin?

Das ist es, die Göttin gab eine Zahlenfolge 631758924. Was wir jetzt tun müssen, ist, aus dieser Zahl die QQ-Nummer der Göttin herauszufinden. Es gibt viele Möglichkeiten, Verwenden Sie beispielsweise 9 Karten, um diese 9 Zahlen zu schreiben, und simulieren Sie den Prozess der Frage. Sie können sie berechnen oder einen Stift verwenden, um sie einzeln zu berechnen. ~~~~

Diese Methoden sind zu niedrig und kann nicht angezeigt werden. Es wäre cooler, ein Programm zu schreiben (eigentlich denke ich, dass das Programm sehr praktisch sein wird, wenn ich das nächste Mal einer Göttin begegne, die eine solche Frage stellt). haha~~~)

Lösungsmethode

Die erste Methode besteht darin, mathematische Methoden zu verwenden und die folgenden Operationen gemäß den Regeln der Frage zu durchlaufen: Rundung => Rest => Rest * 10 + Rundung. . . . . Die Objekte der Restrundung sind alle Vielfache von 10, abhängig von der Anzahl der Ziffern. Nach jeder Rundung gibt es eine Ziffer und die Schleife wird fortgesetzt, bis die Zahl gleich 0 ist.

$raw_num = 631758924;

$num = 0;

while ($devisor

{

$devisor *= 10; //Erhalte die kleinste Ganzzahl, die ein Vielfaches von 10 von raw_num ist

}

while ($raw_num > 0) {

$devisor /= 10;

$next = floor($raw_num / $devisor); / Holen Sie sich die nächste Zahl

$num = $num*10 + $next; //Berechnen Sie die QQ-Nummer des „Halbzeugs“

$raw_num = $raw_num % $devisor

$last = floor($raw_num * 10 / $devisor); //Verschieben Sie die Zahlen und verbinden Sie die neueste QQ-Nummer

$pre = $raw_num % (ceil ($devisor / 10) );

$raw_num = $pre * 10 + $last;

echo „Herzlichen Glückwunsch, Sie erfolgreich Sie haben Ihre QQ-Nummer erhalten: { $num}"; // Herzlichen Glückwunsch, Sie haben die QQ-Nummer erfolgreich erhalten: 615947283

Verwenden Sie den FIFO der Warteschlange, um die QQ-Nummer zu erhalten. Entsprechend den Merkmalen der Frage, Sie Sie können die Warteschlange einfach zum Verarbeiten verwenden. Die Warteschlange ist einfach, bequem und besser verständlich.

#include

struct queue {

int *data;

int head

int tail;

};

int main()

{

int num, i;

printf("Bitte geben Sie den Code aus an entschlüsselte QQ-Zahlenlänge: ");

scanf("%d", &num);

struct queue q;

q.data = ( int *)malloc(sizeof(int)*(num*2-1)); //Die gesamte erforderliche Array-Länge ist num*2-1

q.head = 0;

q.tail = 0;

for(i=1;i

{ , &q.data[q.tail]) ;

q.tail++;

}

printf("Herzlichen Glückwunsch, Sie haben die QQ-Nummer erfolgreich erhalten: "); while(q.head

{

printf("%d", q.data[q.head] );

q.head++ ;

q.data[q.tail] = q.data[q.head];

q.head++;

return 0;

}

#Das Folgende ist ein Experiment

Bitte geben Sie die Länge der QQ-Nummer ein entschlüsselt: 9

Bitte geben Sie die Länge der zu entschlüsselnden QQ-Zahl ein: 9

6

3

1

7

5

8

9

2

4

Herzlichen Glückwunsch, Sie haben die QQ-Nummer erfolgreich erhalten: 615947283. Bitte drücken Sie eine beliebige Taste, um fortzufahren... Jetzt hat sich mein Status im Herzen der Göttin erheblich verbessert.

Wie wäre es damit? Hast du diese Methode gelernt?

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn