找出没有出现的数 题解

标题:找出没有出现的数

 

说明

每个测试点时限:1 second
每个测试点内存限制:1 MB
测试点数量:10
是否有Special Judge:否
使用标准输入输出

 

题目描述

给你一个n和n-2个不重复的在1~n之间数

找出没有出现的那2个数

 n <= 1000000

 

输入格式

第一行,一个数n

第二行,n-2个在1~n之间不重复的数,用一个空格隔开

 

输出格式

一行,两个没有出现的数

从小到大排序

 

样例输入

样例输出

原题叙述

 这题太有意思了,希望大家能动脑经想想,很妙的一道题!

(按ctrl+A看答案)var
        k,i:longint;a,b,r,t1,t2:extended;
        n:int64;
begin
        assign(input,'1.in');reset(input);
        readln(n);
        a:=((1+n)*n) div 2;
        b:=n*(n+1)*(2*n+1)/6;
        for i:=1 to n-2 do
                begin
                        read(k);
                        a:=a-k;
                        b:=b-sqr(k);
                end;
        t1:=(a+sqrt(2*b-sqr(a)))/2;
        t2:=abs((a-sqrt(2*b-sqr(a)))/2);
        if t1<t2 then write(t1:0:0,' ',t2:0:0) else write(t2:0:0,' ',t1:0:0);

end.

 

posted @ 2009-11-02 23:04  瀑布飞鹰  阅读(185)  评论(0编辑  收藏  举报