初试编程+算法

原创 2016年06月01日 21:52:27

    在大一时老师就告诉我们“程序就是数据结构+算法”,当时对于只是刚学习C++的我们来说很难理解,以及面向对象的概念等,当时被这些专业词搞得一头雾水,不过随着大二学习了数据结构后我们慢慢对“程序就是数据结构+算法”这句话有了初步的理解。

随后我们专业的同学又了解到“蓝桥杯”程序设计比赛,初试蓝桥杯的题时真是备受打击,本以为自己学的不错,在见识到蓝桥杯以及一些在线测试系统的题目时真是意识到自己差的好远好远,后来我边学习数据结构边自学一些算法,然后通过做题来检验自己的水平,在学习的过程中深深体会到什么是“学无止境”,尤其对计算机/软件专业的学生来说更是这样。

    在201511月份迎来了我们学校针对于第七届蓝桥杯比赛的校内选拔赛,我当然是积极的参加了,以此来考核一下自己这段时间的学习。选拔赛共5道编程题,分为C++组合Java组。第一题,具体题目忘记的,不过一看就知道是使用暴力循环来解决,可是这题老师处得很有技巧,循环间距不再是平常所见到的i++而是 i+=0.01 ,这样一个步长的变化就是很多同学懵了圈,其实当时我也是思路混乱,总觉得自己的答案不正确,或者有啥算知识来解决只是我没想到。

   然后很心虚的看下一题,不得不说第二题真是给了我很深的印象,题目是:一个数为99999……(未知位数),这个数能被61整除,请编程将这个数的位数求出。在当时,我觉得应该是使用暴力for循环,可以一写不对劲了,循环的上限找不到,而且,随着位数的增加,基本数据类型是存不下的,然后赶紧转化思路,难道是大数问题?可自己有对大数问题一无所知,所以当时心想这下完了,前两题就挂这了,这次肯定完了丑大了,自己这段时间的努力几乎没啥效果。这时脑海里想的都是前一段时间刷的题目,过了会突然想到自己做过的一道题,是除法和求余相结合的过程,转来一想这题难道也需要用求余的方法,抱着死马当活马医的心理试了一下,天!就是这样,利用除法的特性,先令一个数n=9,检验n%61否为0,不为0n=(n%61)*10+9,进行下一次检验,一直这样循环,直到n%610为止。具体代码:

#include<iostream>

using namespace std;

int main(){

       intn=9;

       intm=61;

       intcount=1;  

       while(n%m!=0){

             

              n=n%m*10+9;

              count++;

       }     

       cout<<count<<endl;

       return0;

}

就这么几行简单的代码,如果思路错了,不知道要写多少代码和多少循环……

从这题我深刻体会到写程序思路和逻辑是多么的重要,以及一些算法的特性,在解决一些问题时往往能起到关键作用。 做出此题后赶紧进入到下一题,很顺利解决了第3题,第4题是使用递归的写法,可惜功夫没达到,第5题根本没看,时间就结束了。

选拔赛结果是我通过了,成功选拔到省赛中,这次考核不算完美但却让我有了一些学习的方向,随后我又陆续了解到其他一些算法如:贪心、分治、动态规划等等,然后结合所学的数据结我制定了自己的算法+数据结构的实战练习计划……

相关文章推荐

编程之美2013年初试真题及解析

  • 2014年04月02日 20:16
  • 24KB
  • 下载

java并发编程之synchronization初试

1、概念 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。      一、当两个并发线程访问同一个对象object中的这个sync...

初试CGI编程--python篇

简单的python cgi学习过程记录, 基础的demo , 调试说明

初试MFC--基于Dialog编程

这是第一次较大的尝试用MFC编写程序,也是第一次在新浪写技术博客,受maxf同学的影响吧,不然估计还是不会写。不扯废话,开始吧。 《一》关于全局变量的设定。 1》在stdfx.h里面定义一个全局变...
  • qmiwang
  • qmiwang
  • 2011年11月28日 10:46
  • 169

NDK编程初试

在学习NDK编程之前,看了很多网上的配置教程,这些教程要么时间久远,要么用到的工具的版本不是最新的,所以对于当前最新环境下的NDK配置以及开发,只能做一部分参考,下面来说下我的初试流程。 工具和环境:...
  • yypccc
  • yypccc
  • 2016年08月08日 22:05
  • 185

初试Linux下的线程编程

如何创建线程Linux下一般使用POSIX线程库,也叫pthread。编写线程函数需要注意的是线程函数的返回类型必须是void*;程序编译的时候记得要链接上pthread库,方法:-lpthread简...
  • zwhlxl
  • zwhlxl
  • 2015年05月08日 09:42
  • 570

Linux学习之初试编程基础

想来想去还是重新学习下linux下面的基本操作吧,就当做是熟悉指令了。 把国嵌的实验重新做一遍,虽然之前有做过,但是也没有做什么记录,所以自己现在感觉有点没谱,所以从gcc开始: 一、编写一应用程序,...

初试Spark之K-Means聚类算法实现

自学Spark有将近一个月了,一直想找一个稍微复杂点的例子练练手,K均值聚类算法实现是个不错的例子,于是有了这篇博客。 K均值聚类算法的原理本身很简单,大概思想就是:选取初始质心,根据这些质心将样本点...

西南交大初试相关

  • 2017年11月08日 17:24
  • 103.97MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:初试编程+算法
举报原因:
原因补充:

(最多只允许输入30个字)