Heim  >  Artikel  >  Backend-Entwicklung  >  Auf der Suche nach einer QQ-Nummer von einer Göttin

Auf der Suche nach einer QQ-Nummer von einer Göttin

WBOY
WBOYOriginal
2016-08-08 09:22:301092Durchsuche

Einführung

Ein wunderschöner Programmierer kam in unser Team, ich war insgeheim froh, haha, jetzt ist die Gelegenheit dazu. Ich überlege, wie ich anfangen soll? Okay, fangen wir mit der QQ-Nummer an, um eine Göttin zu finden. Haha, ich bin wirklich ein Genie~~~>Das ist es.

Die Die Idee ist schön, aber die Realität ist grausam. Als ich die Göttin nach meiner QQ-Nummer fragte, hatte ich nicht erwartet, dass sie mir diese nicht direkt gab. Stattdessen stellte sie mir eine Frage Wettbewerb zwischen Programmierern ~~~). Die Frage sieht so aus:

<code>给了一串数字(不是QQ号码),根据下面规则可以找出QQ号码:首先删除第一个数,紧接着将第二个数放到这串数字的末尾,再将第三个数删除,并将第四个数放到这串数字的末尾......如此循环,知道剩下最后一个数,将最后一个数也删除,按照刚才删除的顺序,把这些数字连在一起就是女神的QQ号码啦。</code>

Auf der Suche nach einer QQ-Nummer von einer GöttinDas ist es. Auf diese Weise gab die Göttin eine Zahlenfolge 631758924. Was wir jetzt tun müssen, ist, die der Göttin herauszufinden Es gibt viele Methoden, diese 9 Zahlen mit 9 Karten zu schreiben, um den Prozess der Frage zu simulieren, oder Sie können sie einzeln mit einem Stift berechnen ~~~

Diese Methoden sind zu niedrig und zeigen nicht die Fähigkeiten von Programmierern. Es ist cooler, ein Programm zu schreiben (eigentlich denke ich, wenn ich als nächstes einer Göttin begegne, die eine solche Frage stellt Zeit, das Programm wird sehr praktisch sein, haha~~~)

Lösung

Die erste Methode besteht darin, mathematische Methoden zu verwenden und gemäß den Regeln der Frage die folgenden Operationen in einer Schleife durchzuführen: Runden =>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.

Verwenden Sie den FIFO der Warteschlange, um die QQ-Nummer zu erhalten. Sie können die Warteschlange einfach zum Verarbeiten verwenden .
<code><?php
$raw_num = 631758924;
$num = 0;
$devisor = 1;
while($devisor < $raw_num)
{
	$devisor *= 10;		//获取最小的大于raw_num的10的倍数的整数
}

while ($raw_num > 0) {
	$devisor /= 10;
	$next = floor($raw_num / $devisor);	//获取下一个数字
	$num = $num*10 + $next;				//计算”半成品“QQ号码
	$raw_num = $raw_num % $devisor;
	$last = floor($raw_num * 10 / $devisor);	//移动数字,拼接最新的QQ号码

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

	$raw_num = $pre * 10 + $last;	
}
echo "恭喜你啦,成功获取QQ号码:{$num}";	//恭喜你啦,成功获取QQ号码:615947283</code>

Sag etwas
<code>#include<stdio.h>
struct queue {
	int *data;
	int head;
	int tail;
}; 
int main()
{
	int num, i;
	printf("请输出要破译的QQ号码长度:");
	scanf("%d", &num);
	
	struct queue q;
	q.data = (int *)malloc(sizeof(int)*(num*2-1));	//总共需要的数组长度为num*2-1 
	q.head = 0;
	q.tail = 0;
	
	for(i=1;i<=num;i++)
	{
		scanf("%d", &q.data[q.tail]);
		q.tail++;
	}
	
	printf("恭喜你啦,成功获取QQ号码:"); 
	while(q.head < q.tail)
	{
		printf("%d", q.data[q.head]);
		q.head++;
		
		q.data[q.tail] = q.data[q.head];
		q.tail++;
		q.head++;
	}
	return 0;
}

#下面是一个实验
请输出要破译的QQ号码长度:9
6
3
1
7
5
8
9
2
4
恭喜你啦,成功获取QQ号码:615947283请按任意键继续. . .</code>

Die Idee zu diesem Artikel stammt von „Aha! In Kapitel 2, Abschnitt 1 [Entschlüsselung von QQ-Nummern – Warteschlange] in „Algorithmus“ ist die einzige Abbildung ebenfalls diesem Buch entnommen.

WeChat-ID: love_skills

Je härter du arbeitest, desto mehr Glück wirst du haben! Je mehr Glück du hast, desto härter arbeitest du!

CEO zu sein ist kein Traum

Bai Fumei zu gewinnen ist kein Traum

Schwestern-Gegenangriff ist kein Traum

Jetzt ist es soweit! ! Komm schon


Auf der Suche nach einer QQ-Nummer von einer Göttin

Das Obige ist eine Einführung in das Anfordern einer QQ-Nummer von einer Göttin, einschließlich der relevanten Aspekte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

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