首页 > PHP头条 > 正文

程序员如何解答难题,得到女神QQ号?

原创 2017-11-07 11:50:25 0 26
赞助会员专享特权
遇到一位女神,想着凭自己的颜值可以捕获芳心,于是便主动去找女神要QQ号,没想到颜值攻略失败,女神给我出了道题,看来真是程序员之间的一场较量啊,题目如下:
女神给了一串数字(不是QQ号码),根据下面规则可以找出QQ号码:首先删除第一个数,紧接着将第二个数放到这串数字的末尾,再将第三个数删除,并将第四个数放到这串数字的末尾……如此循环,知道剩下最后一个数,将最后一个数也删除,按照刚才删除的顺序,把这些数字连在一起就是女神的QQ号码啦。

图片1.png

就是这样,女神给了一串数字631758924,现在要做的就是从这个数字中找出女神的QQ号码了,方法有很多种,比如说用9张卡片分别写上这9个数字,模拟题目的过程,可以算出来,也可以用笔一个一个的去算~~~~

这些方法都太low了,显示不出程序员的能力,还是写个程序比较酷一点(其实我是在想,要是下次再遇到一个女神出这样的题目,程序就很方便了,哈哈~~~)

解决办法

第一种方法,采用数学的方法,根据题目的规律,循环下面的操作:取整=>取余=>取余*10+取整。。。。。取余取整的对象都是10的倍数,根据位数而定,每次取整之后就是一位,循环直到数字等于0。

<?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

利用队列的FIFO获取QQ号码,根据题目的特性,刚好可以使用队列来处理,队列简单方便,而且更好理解。

#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

请输出要破译的QQ号码长度:9

6

3

1

7

5

8

9

2

4

恭喜你啦,成功获取QQ号码:615947283请按任意键继续. . .

QQ号码到手,还展现了一手好本领。这下我在女神心中地位是不是又有大大的提升。

怎么样,这种方法大家学到了吗?

  • 相关标签:程序员 得到 难题
  • 本文原创发布php中文网 ,转载请注明出处,感谢您的尊重!
  • 相关文章


  • 少走弯路,一个老程序猿谈PHP职业发展规划
  • 圣诞快乐!来自PHP中文网的真诚问候!
  • PHP“钱景”如何?看看内行怎么说?
  • 元旦福利大放送!破解百度云下载,10MB/S不是梦!
  • 网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
    独孤九贱(4)_PHP视频教程

    独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    独孤九贱(5)_ThinkPHP5视频教程

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    独孤九贱(1)_HTML5视频教程

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    ThinkPHP5实战之[教学管理系统]

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    PHP入门视频教程之一周学会PHP

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    相关视频教程

  • javascript初级视频教程 javascript初级视频教程
  • jquery 基础视频教程 jquery 基础视频教程
  • javascript三级联动视频教程 javascript三级联动视频教程
  • 独孤九贱(3)_JavaScript视频教程 独孤九贱(3)_JavaScript视频教程
  • 独孤九贱(6)_jQuery视频教程 独孤九贱(6)_jQuery视频教程
  • 相关视频章节