开始前的话
今天微软笔试难度直接把我吓蒙了··· 之前的腾讯网易笔试这些都还好,算法题能写出来,微软的4个算法题,一个没读懂,一个不会做;写完的两个则是一个通过测试一个没通过···
算是第一次遇到算法上的重大打击,我决定开始刷acm。随手百度到浙大的acm题库,感觉难度还可以就做了几个。(别问我为啥不用自己川大的acm题库,tm我进到蓝色星空就来个403,这玩毛···)
进入正题,打算写c++/c和java两个版本的代码,遇到oo好做的就用java,遇到操作内存啥的就用c/c++
1001
很简单的第一道题,就当是回顾io操作了。
Calculate a + bInput
The input will consist of a series of pairs of integers a and b,separated by a space, one pair of integers per line.Output
For each pair of input integers a and b you should output the sum of a and b in one line,and with one line of output for each line in input.Sample Input
1 5
Sample Output
6
Hint
Use + operator
c写的
#include "stdafx.h"
int main()
{
int a, b;
while (scanf("%d%d",&a,&b)!=EOF)
{
printf("%d",a+b);
}
return 0;
}
这里提一下遇到的两个问题:
1.visual studio 中编译 C 语言项目,如果使用了 scanf 函数,编译时便会提示如下错误:
error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
原因是Visual C++ 2012 使用了更加安全的 run-time library routines 。新的Security CRT functions(就是那些带有“_s”后缀的函数)。改进方法链接如下:http://www.cnblogs.com/gb2013/archive/2013/03/05/SecurityEnhancementsInTheCRT.html
2.int的范围:
测试时如果数据太大会出现负数等等,这个在数字逻辑课上解释过,超过了int的范围。至于这个范围是多少,知乎这里给了一个解释:
c标准里面只定义了int的最小宽度,所以这个范围就完全依赖于编译器的实现了。
请看c99的 5.2.4.2.1
Their implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign.
minimum value for an object of type int
INT_MIN -32767 // -(2^15 - 1)
作者:Pagefault
链接:https://www.zhihu.com/question/19580654/answer/12283278
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
网友评论