这边蒋小周和潘笑笑聊着天,那边的比赛马上就要开始。
随着考官把题目翻出来后,蒋小周注意力便转移到了题目上。
其中有一道题和acm今年的题差不多,在计算g^k mod m 上,其实有另一种方法可以更快的计算出结果。
基本上是看谁的代码在最后运行的时候,速度最快,效率最高。
同样的题,在不同的人眼里有不同的看法。
比如说有的人提出的思路是通过某个变量,把几个数据主要循环的小魂环次数不能超多百次,从引入一个符号“%m=”,从而看出简单的推导关系;
还有的人提出的思路是用除去较小数取余运算,接下来的那段数就是循环,这样可以直接从数组里读出最后的结果;
也有不少人觉得可以利用1<=n<=,将大整数剥笋味(0’-9‘)的字符串数组,从右向左每5个字符为一组,那么最右的字符iran为1-5。
这里面不少人的思路大体相同,差别在于有的是想用字符串去存储然后来回转换,有的人直接整型数据进行运算。
蒋小周坐在远处,恨不得马上掏出笔记本电脑来,也开始敲打起键盘来。
因为有的题她还是可以试一试的,只可惜作为观赛人员,她只能看着题目,用笔在纸上写写画画。
旁边的潘笑笑就有些傻眼了,这种像乱码一样的字符串,真的看无数次都觉得,这些是什么东西啊!
她始终觉得这比课本上英文字母还要令人头大。
一会儿一个百分号,一会儿又一个大括号,接着又来个井号,还有顿号什么的。
不说潘笑笑这边看傻眼,还有教育局的领导们,也一个个的都看傻了眼。
就靠着这些玩意儿,计算机就能运算出来想要的结果?
这数学不数学的,英语不英语的,怎么算的啊?
但领导嘛,再怎么样面儿上还是维持了应有的镇定。
没看旁边的小蔡和小文两人都看着题目,手里还拿笔搁那算呢嘛。
小蔡和小文真的在算吗?
是也不是。
蔡华和文明两个人离开最前沿的敲代码时间太久了,对这种需要脑子马上反应过来怎么做的事情,大多数时候是力不从心的。
那他俩拿纸笔在干什么呢?
在装样子啊,在领导面前装下还是可以的。
不装怎么办,没看任志勇那家伙的学生,那个小屁孩都搁那奋笔疾书呢吗?
这么好的表现机会,自然是要利用起来的。
到时候领导问起来,他俩也能说道说道。
这些领导大多都是五十来岁的人,他们那个年代哪有这些东西啊。
五六十年代再富裕家庭里出来的孩子,也认不得计算机语言究竟讲的是什么。
除非他本身就是研究这门学科的人。
这些领导是吗?
不是。
周瑛也不是。
所以她也看的云里雾里的。
只不过对比起领导来说,她的表现还算是镇定的那种。
毕竟自从蒋小周开始学习编程后,周瑛就不断目睹女儿的电脑屏幕上出现的各式各样的字符。
早就看不懂了,何谈震惊?
至于说这些东西叫语言,周瑛心里还是接受不了的。
举个例子:
a big integer with most of its digits being zeros is called a sparese big inter.given a sparse big integer m and an integer n,you are to calculate m mod n.
………省略………
1<=k<=10;1<=d<=9;1<=p<=;1<=n<=.
output
for each test case,print the result of m mod n in a sing le line.
sample lnput
1
2 1 6 1 8
2046
sample output
944
从以上来看,不懂行的人,谁能看的懂这都写的是什么呢?
跟周瑛说这是门语言,周瑛只会说,别开玩笑了。
但事实上,这确实是夹杂了英语的编程语言,只不过是用来当作题目出给场上的学生。
而大学生电脑屏幕上,不断闪动的字符,才是真正的编程语言。
比如:
#include<stdio.h>
#include<stdlio.h>
typedef strcut
{
char digit;
int bit;
unsigned mod;
}mbit;
……省略……
for(i=0,currmod =0;i<k;i++)currmod +=m[i].mod;
currmod %=n;
printf(‘’%d’’,currmod);
return 0;
}
除了“……省略……”,其余的就都是题目解答的一种运行计算方式。
没有一个换行(hang )是多余的,也没有一个字符是多余的。
这是就是正儿八经的编程语言。
分号代表了什么意思,百分号代表了什么意思,大中小三种括号分别代表了什么意思等等等。
可不懂行的人就是不懂,只觉的这是乱码。
即使知道auto是“声明自动变量一般不使用”,知道int是“声明整型变量或函数”又有什么用呢?
这是用数学和英语等共同搭建的全新的语言。
只能在电脑上识别并运行的语言。
周瑛等人的不理解其实也就不难理解了。
什么是语言。
用百科的解释来说,就是人类进行沟通交流的表达方式,是人与人交流的一种工具,更是文化的重要载体。
而计算机编程语言,就是程序设计的最重要的工具,它是指计算机能够接受和处理的、具有一定语法规则的语言。
简单的说,这是一种计算机和人都能识别的语言,能让程序员能够准确地定义计算机所需要的数据,并精确地定义在不同情况下所应当采取的行动。
毕竟再怎么说,也是人类赋予了机器这门语言。
而编程语言就像古汉语和大白话和方言,分为了c、c++、java等。
还有现在不流行,后世2017年后才开始流行的python,也是编程语言的一种。
这些语言各有各的优缺点,有的执行效率高,有的是开发效率高。
最后还得根据程序员的个人喜好、习惯来使用。
比如说在表达对别人看自己不爽的情绪的时候,用古汉语说句“汝观何物”,就显得文邹邹的没气概;
用大白话说句“你看什么”,多少显得有点像打情骂俏;
但用东北话说句“你瞅啥”的时候,就言简意赅的充分表达当事人的不爽;
可也有粤省的人不服气,觉得用“你睇乜嘢”更解气;
至于其他的地区,各有各的方法, 更甚者直接来句“草”也不是不可以。
用“草”就谁都听得出来,说话人很生气,但为什么生气,谁知道?
编程语言也是如此。
所以一般来说,资深点的码农通常会掌握至少两种及以上的编程语言。
为的就是能在一个问题出现的时候,可以更好的解决它。
这些参加比赛的人也不例外,大多数人都掌握了至少两门及以上的编程语言。
在这种谁最先解出对的答案,谁就获胜的场合里,争分夺秒是重中之重。
只是时间才刚刚过去了一两个小时后,旁观者就不行了。
比如潘笑笑,比如周瑛。