关闭

《一步一脚印 90后程序员》6

标签: 编程stringibm交通java百度
672人阅读 评论(0) 收藏 举报
分类:

大学里比较成功的一件事那边是报了趣味编程。

这样相比之下和其它没哟报名的人比起来,我觉得自己比别人多了些东西,深入了一些东西,这样我的自信心便会膨胀一起,这样我面对比我强的人我就不会害怕,也不退缩。

我个人觉得,我自己是一个比较胆小的人,怕事的人。这是我所回避的。一般性的人看不出来,就算是普通朋友朋友也是不了解我这一点,还是跟了我很久女朋友说的,哈哈,其实自己是知道的,没想到还是被她看穿了,看来她太了解我了。但我又是执拗的,就算是说穿了,我还是会极力维护自己的面子,给自己找台阶下。我想大家都是好面子的,不然咋熏陶出这么一个我呢?我可以当代中国社会下产物啊哈哈哈。

      言归正传,想必学编程的通知门,都知道ACM吧,全称为“国际大学生程序设计竞赛”国际性的。比赛很是相当的正规了。

以下摘自百度百科对ACM的介绍:


---------------------------------------------------------------------------------------------

ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate ProgrammingContest(ACM-ICPC或ICPC)是由美国计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近30多年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。

  竞赛的历史可以上溯到1970年,当时在美国德克萨斯A&M大学举办了首届比赛。当时的主办方是the Alpha Chapter ofthe UPE Computer Science HonorSociety。作为一种全新的发现和培养计算机科学顶尖学生的方式,竞赛很快得到美国和加拿大各大学的积极响应。1977年,在ACM计算机科学会议期间举办了首次总决赛,并演变成为目前的一年一届的多国参与的国际性比赛。迄今已经举办了35届。
  最初几届比赛的参赛队伍主要来自美国和加拿大,后来逐渐发展成为一项世界范围内的竞赛。特别是自1997年IBM开始赞助赛事之后,赛事规模增长迅速。1997年,总共有来自560所大学的840支队伍参加比赛。而到了2004年,这一数字迅速增加到840所大学的4109支队伍并以每年10-20%的速度在增长。
  1980年,ACM将竞赛的总部设在位于美国德克萨斯州的贝勒大学
  在赛事的早期,冠军多为美国和加拿大的大学获得。而进入1990年代后期以来,俄罗斯和其它一些东欧国家的大学连夺数次冠军。来自中国大陆的上海交通大学代表队则在2002年美国夏威夷的第26届和2005年上海的第29届,2010年哈尔滨的34届全球总决赛上三夺冠军。来自中国大陆的浙江大学代表队在2011年在美国佛罗里达州奥兰多的35届全球总决赛上夺冠。这也是目前为止亚洲大学在该竞赛上取得的最好成绩。赛事的竞争格局已经由最初的北美大学一枝独秀演变成目前的亚欧对抗的局面。
  ACM-ICPC以团队的形式代表各学校参赛,每队由3名队员组成。每位队员必须是在校学生,有一定的年龄限制,并且最多可以参加2次全球总决赛和5次区域选拔赛
  比赛期间,每队使用1台电脑需要在5个小时内使用C、C++或Java中的一种编写程序解决7到10个问题。程序完成之后提交裁判运行,运行的结果会判定为正确或错误两种并及时通知参赛队。而且有趣的是每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球。
  最后的获胜者为正确解答题目最多且总用时最少的队伍。每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次提交运行结果被判错误的话将被加罚20分钟时间,未正确解答的试题不记时。例如:A、B两队都正确完成两道题目,其中A队提交这两题的时间分别是比赛开始后1:00和2:45,B队为1:20和2:00,但B队有一题提交了2次。这样A队的总用时为1:00+2:45=3:45而B队为1:20+2:00+0:20=3:40,所以B队以总用时少而获胜。

------------------------------------------------------------------------------------------------

我所参加的趣味编程 随便不是ACM但也算预备班拉,我们学校也有派队去比赛的哦。不过不是国际赛,先学校筛选,然后派队去浙大区域赛,之后胜出的团队才能参加区域赛,貌似流程是这样的我也给忘了。

         来道简单的题:

敲七

【问题描述】

输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...)

 

要求

数据输入】一个整数N。(N不大于30000)

 

数据输出】从小到大排列的不大于N的与7有关的数字,每行一个。

 

样例输入

20

 

样例输出

7

14

17


常规的简单的题。大一就把难住喽,也难怪,当初连for循环都还没掌握,进去做这种题,自然就死机了,起码做这种题,你得先会循环,不然你怎么累加?

这里说下我的思路吧,定义一个变量i 在for循环中不断的累加,然后每次累加后将i转换成String类型最后用内置的一个查询字符串的函数判断一下是否字符串中有带7的字符,有就直接输出,没有跳过接着加。

另外常规的数学思路,也是累加,不过不转换成String型,而是先判断对7求余,为0整出直接输出,不为0接着判断个位求余,整出输出,不整除接着循环。

还有其它类似的都是在基础上变变。

这里比较提倡的是短代码,越短小精悍的代码越是有思想深度,不仅给人清新的感觉,而且很牛叉啊,同一个小教室的同学,对同一道题目,你会发现,排除写不出来的同学,写出来的同学代码量还是差别很大的,有的用 递归加判断,50行以内搞定,有的直接 穷举法 上 二三百行 洋洋洒洒,那给看的真是辛苦。说有空看你那长一段代码。其中不乏非代码,看了后还容易把自己绕进入。做题重在思想,比赛重在参与。


如果也有正在步入ACM行业的同志们,看完自己学校的题,还有余力应该看每个学校的外网看看,他们都有自己的题库,活跃着不少知识分子哈哈。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1260054次
    • 积分:13587
    • 等级:
    • 排名:第1005名
    • 原创:260篇
    • 转载:87篇
    • 译文:27篇
    • 评论:167条
    最新评论