• Source
    1. #include "bits/stdc++.h"
    2.  
    3. using namespace std;
    4.  
    5. int start[10],koyta[10];
    6.  
    7. void pre()
    8. {
    9. int i,store = 9,store1 = 10;
    10.  
    11. koyta[0] = 0;
    12.  
    13. for(i=1;i<=8;i++)
    14. {
    15. koyta[i] = store;
    16.  
    17. store*=10;
    18. }
    19.  
    20. start[1] = 1;
    21.  
    22. for(i=2;i<=8;i++)
    23. {
    24. koyta[i]*=i;
    25.  
    26. koyta[i]+=koyta[i-1];
    27.  
    28. start[i] = store1;
    29.  
    30. store1*=10;
    31. }
    32. }
    33.  
    34. int main()
    35. {
    36. pre();
    37.  
    38. int n,i,sub,div,rem,num,mod=10;
    39.  
    40. while(scanf("%d",&n)==1)
    41. {
    42. for(i=1;i<=8;i++)
    43. {
    44. if(n<=koyta[i])
    45. {
    46. sub = n-koyta[i-1];
    47.  
    48. div = sub/i;
    49.  
    50. num = start[i]-1+div;
    51.  
    52. rem = sub%i;
    53.  
    54. if(rem)
    55. {
    56. sub = i-(sub%i);
    57.  
    58. num = num+1;
    59.  
    60. while(sub--)
    61. {
    62. num/=mod;
    63. }
    64. }
    65.  
    66. printf("%d\n",num%mod);
    67.  
    68. break;
    69. }
    70. }
    71. }
    72.  
    73. return 0;
    74. }