Hướng dẫn giải của First Number
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Lưu ý: Các code mẫu dưới đây chỉ mang tính tham khảo và có thể không AC được bài tập này
Code mẫu của flashmt
const max=100000; var a:array[1..5*max] of byte; n,i,num,re:longint; s:string; l:byte; procedure init; var i:longint; s:string; l,k:byte; begin fillchar(a,sizeof(a),0); num:=0; for i:=1 to n do begin str(i,s); l:=length(s); for k:=1 to l do begin num:=num+1; a[num]:=ord(s[k])-48; end; end; end; procedure pr; var i:longint; j:byte; kt:boolean; begin for i:=1 to num-l+1 do begin for j:=1 to l do begin kt:=(a[i+j-1]=ord(s[j])-48); if not kt then break; end; if kt then break; end; re:=i; end; begin read(n); init; str(n,s); l:=length(s); pr; write(re); end.
Code mẫu của happyboy99x
#include<cstdio> #include<cstring> char s[500000], t[10], *p = s; int n, k; int main() { scanf("%d", &n); for(int i = 1; i <= n; p += k) sprintf(p, "%d%n", i++, &k); sprintf(t, "%d", n); printf("%d\n", strstr(s, t) - s + 1); return 0; }
Code mẫu của ladpro98
program mdigits2; uses sysutils; var s:ansistring; i,n :longint; begin readln(n); for i:=1 to n do s:=s+inttostr(i); write(pos(inttostr(n),s)); end.
Code mẫu của RR
var n:longint; ss,s:ansistring; begin s:=''; for n:=1 to 100000 do begin str(n,ss); s:=s+ss; end; readln(ss); writeln(pos(ss,s)); end.
Code mẫu của hieult
#include <stdio.h> //#include <conio.h> int s[500010],n,b[10],a[10]; int main() { int u = 0,t,v; scanf("%d",&n); for(int i = 1;i<=n;i++) { t = i;v=0; while(t>0) { v++; a[v]=t%10; t = t/10; } for(int j = 1;j<=v;j++) s[u+j] = a[v+1-j]; u = u+v; } v =0; t = n; while(t>0) { v++; b[v]=t%10; t = t/10; } for(int i = 1;i<=v;i++) a[i] = b[1+v-i]; for(int i = 1;;i++) { int flag = 0; for(int j = 0;j<v;j++) { if(s[i+j]!= a[j+1]) { flag = 1; break; } } if(flag ==0) { printf("%d",i); break; } } //getch(); }
Code mẫu của ll931110
{$H+} {$MODE DELPHI} Program MDIGITS2; Const input = ''; output = ''; Var n: integer; s: string; Procedure init; Var f: text; i: integer; k: string; Begin s:= ''; Assign(f, input); Reset(f); Readln(f, n); For i:= 1 to n do Begin str(i,k); s:= s + k; End; Close(f); End; Procedure solve; Var f: text; k: string; Begin str(n,k); Assign(f, output); Rewrite(f); Writeln(f, pos(k,s)); Close(f); End; Begin init; solve; End.
Code mẫu của skyvn97
var n:longint; s,t:ansistring; i:longint; begin readln(n); s:=''; for i:=1 to n do begin str(i,t); s:=s+t; end; str(n,t); write(pos(t,s)); end.
Code mẫu của khuc_tuan
//{$APPTYPE CONSOLE} {$MODE DELPHI} uses SysUtils; var s : ansistring; n, i : integer; begin read(n); for i:=1 to n do s := s + IntToStr(i); writeln(strpos( PChar(s), PChar(IntToStr(n))) - PChar(s) + 1); end.
Bình luận