Maison > titres > le corps du texte

Comment les programmeurs résolvent-ils des problèmes difficiles et obtiennent le compte QQ de la déesse ?

小云云
Libérer: 2017-11-07 11:50:25
original
2302 Les gens l'ont consulté

J'ai rencontré une déesse et j'ai pensé que je pouvais gagner son cœur avec mon apparence, alors j'ai pris l'initiative de demander un compte QQ à la déesse. De façon inattendue, la stratégie beauté a échoué. elle était en réalité une programmeuse. Un concours entre les deux, le sujet est le suivant :
La déesse a donné une chaîne de nombres (pas de nombres QQ). Le numéro QQ peut être trouvé selon les règles suivantes : supprimez d'abord le premier. nombre, puis mettez le deuxième nombre. Allez à la fin de cette chaîne de nombres, supprimez le troisième nombre, et mettez le quatrième nombre à la fin de cette chaîne de nombres... Dans cette boucle, jusqu'à ce qu'il reste le dernier nombre, supprimez le dernier numéro et supprimez-le comme vous venez de le faire. Dans l'ordre, connectez ces numéros ensemble pour obtenir le numéro QQ de la déesse.

Comment les programmeurs résolvent-ils des problèmes difficiles et obtiennent le compte QQ de la déesse ?

Ça y est, la déesse a donné une chaîne de nombres 631758924. Ce que nous devons faire maintenant, c'est découvrir le numéro QQ de la déesse à partir de ce numéro. tels que Utilisez 9 cartes pour écrire ces 9 nombres respectivement et simulez le processus de la question. Vous pouvez les calculer, ou vous pouvez utiliser un stylo pour les calculer un par un ~~~~

Ces méthodes sont. trop faible et ne peut pas être affiché. Quant aux capacités d'un programmeur, ce serait plus cool d'écrire un programme (en fait, je pense que si je rencontre une déesse posant une telle question la prochaine fois, le programme sera très pratique, haha~~~)

Méthode de solution

La première méthode consiste à utiliser des méthodes mathématiques et à cycler les opérations suivantes selon les règles de la question : arrondi => reste => reste * 10 + arrondi. . . . . Les objets d'arrondi du reste sont tous des multiples de 10, selon le nombre de chiffres. Après chaque arrondi, il y a un chiffre, et la boucle se poursuit jusqu'à ce que le nombre soit égal à 0.

$raw_num = 631758924;

$num = 0

$devisor = 1

pendant que ($devisor

{

$devisor *= 10; //Obtient le plus petit entier multiple de 10 de raw_num

}

while ($raw_num > 0) {

$devisor /= 10;

$next = floor($raw_num / $devisor); / Obtenez le numéro suivant

$num = $num*10 + $next; //Calculez le numéro QQ du "produit semi-fini"

$raw_num = $raw_num % $devisor

$last = floor($raw_num * 10 / $devisor); //Déplacez les nombres et collez le dernier numéro QQ

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

$raw_num = $pre * 10 + $last;

echo "Félicitations, vous avez réussi obtenu votre numéro QQ : { $num}"; //Félicitations, vous avez réussi à obtenir le numéro QQ : 615947283

Utilisez le FIFO de la file d'attente pour obtenir le numéro QQ. Selon les caractéristiques de la question, vous peut simplement utiliser la file d'attente pour le traiter. La file d'attente est simple, pratique et mieux comprise.

#include

struct queue {

int *data

int head

int tail;

};

int main()

{

int num, i

printf("Veuillez envoyer le code à être déchiffré longueur du numéro QQ : ");

scanf("%d", &num);

struct queue q;

q.data = ( int *)malloc(sizeof(int)*(num*2-1)); //La longueur totale requise du tableau est num*2-1

q.head = 0; 🎜> q.tail = 0;

for(i=1;i

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

q.tail++;

}

printf("Félicitations, vous avez obtenu le numéro QQ : "

while(q.head

{

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

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

q.head++;

return 0;

}

#Ce qui suit est une expérience

Veuillez entrer la longueur du numéro QQ à déchiffré : 9

Veuillez saisir la longueur du numéro QQ à déchiffrer : 9

6

3

1

7

5

8

9

2

4

Félicitations, vous avez obtenu avec succès le numéro QQ : 615947283. Veuillez appuyer sur n'importe quelle touche pour continuer... Maintenant, mon statut dans le cœur de la déesse s'est grandement amélioré.

Et si vous avez appris cette méthode ?

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal