165 条题解
-
0christlena LV 3 @ 2007-05-27 21:30:43
奇怪,原来格式有空格就通不过
program cake;
var
r:longint;
s,m,n:int64;
begin
readln(m);
n:=m;
s:=n*(n+1) div 2;
s:=s+1;
writeln(s);
end. -
02007-05-26 19:58:15@
Pascal Source
var
n:qword;
begin
readln(n);
writeln((n*(n+1) div 2)+1);
end.我是用C++的,可是C++要什么数据类型才能过啊?
我用了long long long double long long double
都只能过3个,其他的都不行,请问怎么办啊? -
02007-05-26 16:18:10@
var m:longint;
sum,n:int64;
begin
readln(m);
n:=m;
sum:=n*(n+1) div 2+1;
writeln(sum);
end.晕死
第一次没过
第二次只多加了一句 n:=m 就AC了 -
02007-05-25 22:22:26@
program black;
var
n,sum:longint;
begin
readln(n);
sum:=1;
while (n>0) do
begin
n:=n-sum;
sum:=sum*2;
end;
writeln(sum);
end. -
02007-05-25 21:33:08@
var
a.b.c,n:longint;
f:array[1..10000]of longint;
begin
readln(n);
fillchar(f,sizeof(f),0);
f[0]:=1;
for a:=1 to n do
f[a]:=f[a-1]+a;
writeln(f[n]);
end. -
02007-05-23 22:08:58@
var
a.b.c,n:longint;
f:array[1..10000]of longint;
begin
readln(n);
fillchar(f,sizeof(f),0);
f[0]:=1;
for a:=1 to n do
f[a]:=f[a-1]+a;
writeln(f[n]);
end. -
02007-05-15 22:25:41@
Var
n,s:longint;
function f(n:integer):longint;
begin
if n=1 then f:=2
else f:=f(n-1)+n;
end;
begin
read(n);
s:=f(n);
write(s);
end. -
02007-05-14 13:40:00@
program vijos_1324;
var
n,ans:int64;
begin
readln(n);
ans:=1+(1+n)*n div 2;
end. -
02007-05-11 22:53:18@
平面上只要多出现一条直线,就能至少多把平面分出一部分,而若此直线与其他直线有n个交点,就再能把平面多分出n个部分,因此若想把平面划分的部分最多,新添入的直线必须与前k条直线交k个点,即第二条直线要与第一条直线交1个点,第三条要与前两条交2个点,……,第1999条与前1998条交1998个点,这样,第二条直线多划分出1+1=2个部分,第三条直线多划分出1+2=3个部分,……,第1999条直线多划分出1+1998=1999个部分。而第一条直线把平面划分出2个部分,因此1999条直线能划分平面的块数为:
2+2+3+4+5+…+1998+1999
=1+(1+2+3+4+5+…+1998+1999)
=1+(1+1999)*1999/2
=1999001 -
02007-04-28 17:25:41@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
ms很容易? -
02007-04-25 22:12:33@
var a,b:int128;
begin
read(a);
if (a0) then b:=a*7
if a>5then b:=a*2+((a-2+2)*(a-2)) div 3
if a=0 then b:=6;
if a=0 then b:=4;
write(b);
end. -
02007-04-25 20:27:58@
var a,b:int64;
begin
read(a);
if (a0) then b:=a*2
if a>3 then b:=a*2+((a-2+1)*(a-2)) div 2
if a=0 then b:=7;
if a=0 then b:=1;
write(b);
end. -
02007-04-24 17:40:57@
好在我看了大家的题解,感谢大家了!!!
var n,s:qword;
begin
readln(n);
s:=(n*(n+1)div 2)+1;
writeln(s);
end. -
02007-04-21 23:44:16@
总于过了,原来要用int64啊,长见识了,恩~感谢大家.
-
02007-04-21 19:31:53@
成功ACCEPT20题纪念~
-
02007-04-18 11:36:22@
无敌五香麻辣阴阳五行令万千饿鬼为之绝倒的巨无霸大蛋糕1号。
能吃得下去吗!?
-
02007-04-12 20:25:31@
#include
int main(void)
{
double i;
scanf("%lf",&i);
printf("%I64d",(__int64)(i*(i+1)/2+1));
}下面是能够横切时的通项公式:
i*i*i/3-i*i+i*8/3
这来自一个猜测:因为对于一维的线,用点分是点数线性函数,对于二维的面,用线分是线条数的二次函数,……,所以设定一个三次式,代入前几组值求得上面的解析式,可以分析出它的值均为整数,这更让人相信这就是结果,另外前面若干组均符合。 -
02007-04-08 19:41:52@
#include
using namespace std;
main()
{
unsigned __int64 n;
cin>>n;
n=(n+1)*n/2+1;
cout -
02007-04-08 13:55:15@
var a,b:int64;
begin
read(a);
if (a0) then b:=a*2
if a>3 then b:=a*2+((a-2+1)*(a-2)) div 2
if a=0 then b:=7;
if a=0 then b:=1;
write(b);
end. -
02007-04-06 22:49:30@
一直在想要能横切怎么办
但一直没画出个公式
不知哪位知道怎么办