Trang chủ Tin Học Lớp 11 Khi viết các số tự nhiên tăng dần từ 1,...

Khi viết các số tự nhiên tăng dần từ 1, 2, 3, liên tiếp nhau, ta nhận được một dãy các chữ số thập phân vô hạn, ví dụ: 1234567891011121314151617181920... Yêu c

Câu hỏi :

Khi viết các số tự nhiên tăng dần từ 1, 2, 3, liên tiếp nhau, ta nhận được một dãy các chữ số thập phân vô hạn, ví dụ: 1234567891011121314151617181920... Yêu cầu: Hãy tìm chữ số thứ N của dãy số vô hạn trên. Dữ liệu vào từ file Number.inp gồm một số dòng, mỗi dòng ghi một số nguyên dương N (N<10 9 ). Kết quả ra file Number.out, với mỗi số N đọc được từ file Number.inp, ghi trên dòng tương ứng chữ số thứ N của dãy. Ví dụ: Number.inp Number.out 5 5 10 1 54 3

Lời giải 1 :

Program number;
Uses    crt;
Var     N: longint;
        tep1, tep2: text;
Function luythua(x: integer): longint;
Var     i: integer;
        S: longint;
Begin
        S:=9;
        If x=1 then luythua:=S
        else begin
                   For i:=2 to x do S:=S*10;
                   luythua:=S;
             end;
end;
Procedure main(var y: longint);
Var       B: longint;
          a,j: integer;
Begin
        a:=1;
        While y>=luythua(a)*a do
        begin
             dec(y,luythua(a)*a);
             inc(a);
        end;
        If y=0 then writeln(tep2,'9')
        else begin
                   B:=y mod a;
                   y:=y div a;
                   inc(y);
                   If B=0 then writeln(tep2,pred(y) mod 10)
                   else begin
                        B:=a-B;
                        For j:=1 to B do
                        begin
                                a:=y mod 10;
                                y:=y div 10;
                        end;
                        writeln(tep2,a);
                   end;
             end;
end;
Begin
        Assign(tep1,'Number.inp'); Reset(tep1);
        Assign(tep2,'Number.out'); Rewrite(tep2);
        While not eof(tep1) do
        begin
             Readln(tep1,N);
             main(N);
        end;
        close(tep1); close(tep2);
End.

Thảo luận

Lời giải 2 :

uses crt;
var S, Z : ansistring;
    N, i : longint;
    f1, f2 : text;
    
begin
clrscr;
assign(f1, 'Number.inp'); reset(f1);
assign(f2, 'Number.out'); rewrite(f2);

while not eof(f1) do
    begin
        readln(f1, N);
        S := ''; i := 1;
        while length(S) < N do
            begin
                str(i, Z);
                S := S + Z;
                inc(i);
            end;
        writeln(f2, S[n]);
    end;

close(f1); close(f2);
end.

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 11

Lớp 11 - Năm thứ hai ở cấp trung học phổ thông, gần đến năm cuối cấp nên học tập là nhiệm vụ quan trọng nhất. Nghe nhiều đến định hướng sau này rồi học đại học. Ôi nhiều lúc thật là sợ, hoang mang nhưng các em hãy tự tin và tìm dần điều mà mình muốn là trong tương lai nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK