基础算法题目精简集合(一)

********************************************************************************
本文题目源自飞燕之家在线测评论坛http:
//yzfy.org/,程序由博主编写,转载清注明出处
********************************************************************************
基础算法题目精简集合

题目相对来说简要了一些,算是有代表性了,各方面都有题目,偶不希望像别的帖子那样像为了凑数般弄够100题,相反这里不过二三十。
前六章均为算法基础入门必会解答的题目,也就是若当中有任何一题,您无法给出正确解答,就不算有算法基础(带星的题目例外),并且这里不提供基础题解答,若你实在需要,请自行查资料或者找人帮你。
下文假定阅读者具有良好的小学数学基础,以及懂得使用C/C++/Pascal语言当中的任何一种,尽管你会其它的语言也行,但算法描述方面以及代码效率还是推荐以上三种。
如果以下算法基础的题目您学习了很久也无法正确解决的话,那么本人不建议你继续学习编程(基础题不用STL库独立解答出才算是会)。

第一章。循环控制
1.输入一个奇数n,输出对角线长为n的实心或者空心的菱形图案
  如当n=5时,有:
    *
   ***
  *****
   ***
    *
  实现代码:

Code

2.输入一个奇数n,构造并输出一个n阶等和幻方,
  即每一行每一列和两对角线上的n个数的和相等
  如当n=5时,有(构造方法请自行搜索或者观察下表):
  03 16 09 22 15
  20 08 21 14 02
  07 25 13 01 19
  24 12 05 18 06
  11 04 17 10 23

Code

3.输入一个1e9以内的整数n和k(2<=k<=36),输出相应的k进制数。
 

Code

4.输入一个整数n(2<=n<=1e9),判断它是不是质数,
  时间复杂度必须为O(n^0.5),不得为O(n)
  质数就是2,以及其它有且只有两个约数的整数,
  如3,5,7,11,13,17,19,23,29,31,......(以上为前10个奇质数)

Code

5.字符串模式匹配。输入两个字符串a,b,判断b是否在a中出现,
  如有,请输出第一次出现的位置。

Code

第二章。简单穷举搜索
1.输入两个数a,b(1 <= a,b <= 1e5),统计a,b之间一共有多少个质数
  相关题目请参阅
http://yzfy.org/bbs/viewthread.php?tid=392
  若要通过链接里那个题目还需要优化,单纯做出本题并不难。
      如何优化?

Code

2.查找1000以内的所有水仙花数,如153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27
  各位上的数字的三次方的和等于自己本身

Code


3.输入一个数n(1<=n<=1e4),然后再输入n个不同的整数,再输入一个整数k,
  判断k是否在那n个整数上出现过。

Code

第三章。迭代、递推和递归
1.斐波那契数列和:输入整数n,求1/1+2/1+3/2+5/3+8/5+.....
  一直到第n项的结果。

Code


2.★经典Hanoi塔问题。

Code

第四章。简单计算几何
1.简单碰撞检测
编写一个函数
int IsOnRECT(float x, float y, float r,float x1, float y1, float x2, float y2)
x,y表示一个圆的圆心,r是圆的半径,x1,y1,x2,y2表示一个矩形的一条对角线上的两个顶点的坐标矩形的四边均与坐标轴平行或者垂直,要判断这个圆和这个矩形有没有重合的部分。
输入:
按照参数传递进行输入,样例中一行就是一次输入
按顺序分别对应x,y,d,x1, ....
输出:
使用函数返回值作为输出,当有重合的时候返回非0,否则请返回0
函数中不得含有任何其它输出,否则作为错误
样例输入:
1 1 1  0 0 2 2
1 1 1  2 2 3 3
样例输出:
1
0
其它:
答题时请不要粘贴上main函数,需要任何头文件请自己包含因精度方面问题,不需要考虑相切,相切作为不重合处理即可。

Code

 

你可能感兴趣的:(算法)