여신에게서 QQ 번호를 구합니다

WBOY
풀어 주다: 2016-08-08 09:22:30
원래의
1097명이 탐색했습니다.

소개

우리 팀에 아름다운 프로그래머가 왔는데, 은근히 기뻤습니다. ㅎㅎ 지금이 기회입니다. 어떻게 시작해야 할지 고민 중이에요? 그럼 QQ번호부터 볼까요. 여신을 찾으려면 QQ번호로 가야죠 ㅎㅎ 정말 천재네요~~

그렇습니다

아이디어 아름답지만 현실은 잔혹하다. 여신에게 내 QQ 번호를 물었을 때 여신이 직접 주지 않을 거라고는 예상하지 못했다. 프로그래머들~~) 문제를 다 풀지 못하면 여신과 접촉할 기회도 없이 기본적인 프로그래밍 능력까지 의심받게 됩니다~~질문은

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

여신에게서 QQ 번호를 구합니다

이렇게 여신이 631758924라는 일련의 숫자를 주었다. 이제 우리가 해야 할 일은 여신의 QQ수를 알아내는 것이다. 예를 들어, 9개의 카드를 사용하여 질문의 과정을 시뮬레이션하거나 펜을 사용하여 하나씩 계산할 수 있습니다. ~

이러한 방법은 너무 낮고 프로그래머의 능력을 보여주지 못합니다. (사실 저는 다음번에 이런 질문을 하는 여신을 만난다면, 프로그램이 참 편할 것 같아요, 하하~~)

해결책

첫 번째 방법은 수학적 방법을 사용하여 질문의 규칙에 따라 다음 작업을 반복하는 것입니다. 반올림 => ;나머지=>나머지*10+반올림. . . . . 나머지 반올림의 대상은 자릿수에 따라 모두 10의 배수입니다. 각 반올림 후에는 한 자릿수가 있으며 해당 숫자가 0이 될 때까지 루프가 계속됩니다.

<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>
로그인 후 복사

큐의 FIFO를 사용하여 QQ 번호를 얻습니다. 질문의 특성에 따라 큐를 사용하여 처리하면 됩니다. 큐는 간단하고 편리하며 이해하기 쉽습니다. .

<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>
로그인 후 복사

말해 보세요

이 글의 아이디어는 "아하! "알고리즘"의 2장 1절 [QQ 번호 해독 - 대기열]에서 유일한 그림도 이 책에서 가져온 것입니다.


WeChat ID: love_skills

열심히 노력할수록 행운이 찾아옵니다! 운이 좋을수록 더 열심히 일하세요!

CEO는 꿈이 아니다

바이푸메이 우승은 꿈이 아니다

언니의 반격은 꿈이 아니다

지금이다! ! 어서
여신에게서 QQ 번호를 구합니다

위 내용은 여신에게 QQ 번호를 요청하는 방법에 대한 소개이며, 관련 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿