题面是这样的
说学校里n个学生学号为1~n,其中有两个人私奔了,校长让每个同学写下自己的学号,求那两个私奔的人的学号。
样例输入:
8
3 2 6 4 1 7
样例输出
5 8
空间限制1K
然后n的范围是3到1000000
题目最主要的就是空间限制,要求o(1)的空间。
记要求的数为a,b
所以呢,我们可以用一个int记录n,开一个long long sum记录1~n的和,另开一个long long sqr记录1~n的平方和。
再来一个i做循环变量。用tmp记录每次读入的数,然后sum-=tmp, sqr-=tmp*tmp;
这样到最后,我们得到了a+b和a^2-b^2
二元方程组,有唯一解,再随便解解答案就出来。
-------------------------------------------------------------------
过了会儿又有人出了一个题,不用分号,用c语言,编写计算log(n)的程序(其中n要从键盘读入)
正解也是很快就来了,,,如下
#include <stdio.h>
#include <math.h>
int main(int n) {
if (scanf("%d",&n) , printf("%d\n" , (int)log2(n))) {}
}
嗯。。。结束了。。