Kết quả 1 đến 6 của 6
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    2

    Phân tích - Tin học trẻ Bắc Ninh.

    File chương trình PTICH.PAS
    Cho số nguyên dương N. Hãy cho biết có thể phân tích N thành tổng các số tự nhiên liên tiếp hay không? Nếu có hãy phân tích N thành tổng của các số tự nhiên liên tiếp với nhiều số hạng nhất có thể được.
    Dữ liệu vào: cho trong File PTICH.INP gồm một số dòng, mỗi dòng ghi một số nguyên dương N (N<109)
    Kết quả: ghi ra file PTICH.OUT theo cấu trúc sau:
    + Nếu N phân tích được thành tổng các số tự nhiên liên tiếp thì ghi chữ d sau đó là các số hạng trong cách phân tích đó, các số hạng ghi cách nhau một dấu cách, mỗi dòng ghi không quá 25 số.
    + Nếu N không phân tích được thì chỉ ghi chữ k.
    Ví dụ:

    PTICH.INP
    12
    8
    PTICH.OUT
    d: 3 4 5
    k

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    2
    đây là chương trình mình viết, các bạn tham khảo

    Mã:
    var A:array[1..100] of integer;
    m,i,h,g,N,k,S:integer;
    Begin
     write('Nhap vao so nguyen duong N:'); Readln(N);
     m:=1;
    while m<= N div 2 do
     Begin
       For i:= (N +1) div 2 downto m+1 do
         Begin
           S:=0; h:=0;
            For k:=m to i do
             Begin
                  S:=S+k;
                  h:=h+1;
                  A[h]:=k;
             End;
            if S=N then
              Begin
                For g:=1 to h do
                    write(A[g]:3);writeln;Readln;exit;
              End;
     
         End;
              m:=m+1;
    End;
    Readln
    END.

  3. #3
    Ngày tham gia
    Apr 2016
    Bài viết
    6
    Bài phân tích này thì mình nghĩ không khó, cac bạn đưa ra các cách giải cho mình tham khảo thêm nhé!

  4. #4
    Ngày tham gia
    Nov 2015
    Bài viết
    10
    Code mình viết đơn giản hơn chút đây:
    Mã:
    var A:array[1..100] of integer;
     i,h,j,g,N,k,S:integer;
    BEGIN
      write('Nhap vao so nguyen duong N:'); Readln(N);
     { i:=1;
     {while i<= N div 2 do }
     For i:=1 to N div 2 do
        Begin
            S:=0; h:=0;
             For k:=i to (N+1) div 2 do
              Begin
                   S:=S+k;
                   h:=h+1;
                   A[h]:=k;
                 if S=N then
                     Begin
                         For j:=1 to h do write(A[j]:3);
                          writeln;
                          Readln;exit;
                     End;
               End;
              { i:=i+1;}
        End;
       Readln
    END.
    ---------------------------------Bài viết đã được trộn ---------------------------------
    Mình nghĩ đề này cũng dễ hiểu cái đề thôi mà, sao các bạn không tham gia giải nhỉ?

  5. #5
    Ngày tham gia
    Nov 2015
    Bài viết
    1
    Không tham gia giải bài có nhiều lí do bạn ạ. Có thể do thời gian hạn chế, có thể do bạn đã post lời giải rồi nên không ai post thêm lời giải nữa.

  6. #6
    Ngày tham gia
    Dec 2015
    Bài viết
    0
    Đề khối C àh !? Thi sớm thế nhỉ [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]. K ai tham gia giải vì
    - dễ wá ( chắc thế )
    - đang tg ôn thi học kì II mà

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •