算法
lconline
Linux C/C++
展开
-
一道求循环小数的程序员笔试题
题目是这样的:求两个数相除的商,并计算出小数点后的循环部分。例如1/3 商为0.333333333... ,则表示为0.(3)。 此题的关键是怎么判断商循环小数以及得到其循环部分。其实就是一个很简单的数学知识,如果两数相除,出现了两次相同的余数,则循环发生。 C#代码如下,其原理就是余数乘10再除以除数,若出现两次相同的余数,则可得到循环部分。using System;us原创 2010-03-19 20:22:00 · 1087 阅读 · 0 评论 -
[总结] 二叉排序树
1 概述二叉排序树(Binary Sorting Tree)或者是一棵空树,或者具有如下性质:(1)若它有左子树,则左子树上所有的结点的数据均小于根结点的数据;(2)若它有右子树,则右子树上所有的结点的数据均大于根结点的数据;(3)左、右子树本身又是一棵二叉排序树。如下图所示:易知:非空二叉排序树中结点数据是按照左子树、树、右子树这种顺序排列的。所以对其中序遍历得到的结点序列原创 2010-05-29 18:58:00 · 978 阅读 · 0 评论 -
面试问题
腾讯面试时候的几个问题,记在这里,先写两个,然后慢慢写,O(∩_∩)O~ 1、首先是笔试的时候就出现过的一道题,面试的时候又让我做,才发现笔试的时候就想错了。有如下代码: #include int main() { int x = 1429; int count = 0; while(x) { x = x&(x-1); cou原创 2010-05-30 11:09:00 · 629 阅读 · 0 评论 -
中兴捧月的某道预赛题
一直忙着折腾别的事,把预算给放一边了。幸好,离截至时间前20分钟提交了。选了一道简单的布雷,还有一个家访问题。布雷的程序就不拿出来说了,二十行不到,算法也简单。就在这说下教师家访问题吧。 题目是这样滴。 输入文件:student.txt distance.txt 你是小学某班主任,需要安排周六进行家访。于是打电话与家长联系,他们表示虽然比较忙,但还是会为你抽出一点时间。 由于有些家长时间上有冲突,并且一天内不能拜访所有家长,你需要一个程序安排一天的工作,使得你可以拜访最多的家长。注意原创 2010-06-01 20:49:00 · 1354 阅读 · 10 评论 -
有序链表合并的递归和非递归算法
也是在笔试和面试的时候遇到的,当时也就光记得《数据结构》上非递归算法了,今天都写在这,对比着记记。首先是递归算法,形参是两个链表第一个结点的指针。Node* mergAction(Node* head1,Node *head2){ Node *p=NULL; if(head1==NULL&&head2==NULL) return p; else if(head1==NULL) return head2; else if(head2==NUL原创 2010-06-03 23:40:00 · 5463 阅读 · 1 评论 -
某软件研发笔试题 – 0的移动
<br /> <br />题目:<br />int a[nSize],其中隐藏着若干0,其余非0整数,写一个函数<br />int Func(int *a, int nSize);<br />使a把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)<br /> <br /> <br />解:<br />思路1:不知道这里的有序是什么个意思。是按照大小有序,还是按原来先后顺序有序。如果是原来先后顺序有序的话。只原创 2010-11-11 21:07:00 · 916 阅读 · 0 评论