126 条题解
-
0怪盗~基德 LV 10 @ 2009-06-25 12:46:15
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms才20多行啊。
program vijos;
var i,k,n,m:longint;
d:array[0..8] of longint=(0,9,189,2889,38889,488889,5888889,68888889,788888889);
begin
readln(n);
for i:=1 to 8 do
if n -
02009-06-15 09:43:32@
program ll;
var
s:string;
n,i:longint;begin
readln(n);
i:=0;
repeat
inc(i);str(i,s);
if length(s)>=n
then
begin
writeln(s[n]);
halt;
end
else
dec(n,length(s))until i=0;
end. -
02009-06-15 08:51:43@
3000次提交,可惜从80改成了0分
-
02009-05-08 13:49:58@
看不懂题目下边的什么n^5。。。随便写写。无敌水题。
-
02009-04-01 18:23:24@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
program p1181;
var n,i:longint;
x,s:ansistring;
begin
read(n);
if n -
02009-03-29 08:35:44@
打出了一个0.。。。。。。。。。。。。。
天啊。。。。。 -
02009-03-10 00:21:13@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms#include "stdio.h"
int main()
{
int i,j,d,n,x,y,b[10],s[9],ans[50];
scanf("%d",&n);
b[0]=0;
b[1]=9+1;
b[2]=b[1]+90*2;
b[3]=b[2]+900*3;
b[4]=b[3]+9000*4;
b[5]=b[4]+90000*5;
b[6]=b[5]+900000*6;
b[7]=b[6]+9000000*7;
b[8]=b[7]+90000000*8;
s[0]=0;
s[1]=0;
s[2]=10;
s[3]=100;
s[4]=1000;
s[5]=10000;
s[6]=100000;
s[7]=1000000;
s[8]=10000000;
i=0;
while(n>=b[i]) i++; //判断几位数
d=n-b;
x=d/i; //几位数的第几个(从0算起)
y=d%i; //那个数中的第几位
x=s[i]+x;//那个数
for(j=0;j -
02009-02-28 15:51:34@
这道题就是选范围用了我比较多的篇幅,其实可以用字符串处理算出范围的,可我闲麻烦,还不如多打点字.....
program kenan;
var n,fj,v,i,j,s,c,y,shu,l:longint;
zf:string;
begin
readln(n);
if n -
02009-02-23 16:57:56@
你好萎缩
-
02009-02-23 16:52:07@
program ex1181;
var i,j,l,k,m,n:longint;
s:string;
begin
readln(n);
i:=0;
repeat
inc(i);
str(i,s);
l:=length(s);
if l>=n then begin
writeln(s[n]);
break;
end
else dec(n,l);
until l>1000000;
end.
我好无敌 -
02009-02-04 12:00:59@
const
a:array[1..8]of longint=(9,180,2700,36000,450000,5400000,63000000,720000000);
var
i,j,k,t,n,l:longint;
s:string;
begin
readln(n);
k:=0;
for i:=1 to 8 do
begin
k:=k+a[i];
if k>=n then
begin
j:=i-1;
k:=k-a[i];
break;
end;
end;
n:=n-k;
t:=round(exp(j*ln(10)))+(n div (j+1))-1;
n:=n mod (j+1);
if (n0) then
t:=t+1
else
n:=j+1;
s:='';
while t>0 do
begin
s:=chr(48+(t mod 10))+s;
t:=t div 10;
end;
write(s[n]);
end. -
02009-01-26 20:35:08@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
永久纪念,第1000个 -
02008-12-08 17:51:53@
这道题根本不用字符串去做也可以吗!!
太easy了,不过由于粗心还是两遍过的,我的通过率?!!!
const
a:array[1..8]of longint=(9,180,2700,36000,450000,5400000,63000000,720000000);
var
i,j,k,t,n,l:longint;
s:string;
begin
readln(n);
k:=0;
for i:=1 to 8 do
begin
k:=k+a[i];
if k>=n then
begin
j:=i-1;
k:=k-a[i];
break;
end;
end;
n:=n-k;
t:=round(exp(j*ln(10)))+(n div (j+1))-1;
n:=n mod (j+1);
if (n0) then
t:=t+1
else
n:=j+1;
s:='';
while t>0 do
begin
s:=chr(48+(t mod 10))+s;
t:=t div 10;
end;
write(s[n]);
end. -
02008-11-13 09:17:00@
靠
硬算
ansistring改成string就过了 -
02008-11-11 22:09:56@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
纯数学.水呀 -
02008-11-06 19:26:26@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msC++23行搞定……
纯数学……
具体的自己想去…… -
02008-11-01 19:59:50@
数学方法,O(1)复杂度,program covhmima;
if (n>=1)and(n=10)and(n=190)and(n=2890)and(n=38890)and(n=488890)and(n=5888890)and(n=68888890)and(n=788888890)and(n -
02008-10-29 10:52:57@
logn参考代码
var n,i,s,last,all:longint; p:string;function power(y:longint):longint; var i,s:longint; begin s:=1; for i:=1 to y do s:=s*10; power:=s; end;begin read(n); for i:=1 to 8 do begin last:=all; inc(all,i*9*power(i-1)); if all>=n then break; end; if all=n then write(9) else begin s:=trunc(power(i-1)+(n-last-1) div i); str(s,p); write(p[(n-last-1) mod i+1]); end;end. -
02008-10-23 19:12:21@
垃圾temper,成天耗我AC率.明明0MS AC,愣是超时......
-
02008-10-22 02:04:05@
破题,,给的数据10^8!!!
汗死了,,我真按照那个做的,,结果白提交了两次,都零分,我的AC率啊!!
第三次换成long long int,,才过!!
这水题让我AC率掉的啊。。。。编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms