Announcement

Collapse
No announcement yet.

[isteam test 2011] k4,5,6

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [isteam test 2011] k4,5,6

    Giờ đã hết hạn nộp bài rồi! Mọi người cùng show ý tưởng, bài làm của mình và chia sẽ, trao đổi kiến thức với nhau nào...
    Có ai làm được cả 3 bài hoàn chỉnh ko? Share code cho mọi người tham khảo đi

    Đề bài:

    Đây là cái đề do mình nhận được, không biết có khác gì so với đề chính thức không ?
    1. Viết chương trình cộng 2 chuỗi số nhập vào từ người dùng.
    Ví dụ: chuỗi 1 = “8765” chuỗi 2 = “9887”, kết quả của phép cộng là
    “18654”

    2. Viết chương trình nhập ngày tháng năm, in ra thứ của ngày đó.
    Ví dụ: ngày 15/10/2011 in ra thứ 7

    3. Phân một số (lớn hơn 1) thành tổng các số nguyên tố sao cho số các số hạng là ít nhất. (liệt kê tất cả các tổng phù hợp nếu có và không quan trọng thứ tự các số hạng)
    Ví dụ: phân tích số 46:
    46 = 43 + 3
    46 = 41 + 5
    46 = 5 + 5 + 5 + 5 + 5 + 5+ 5 + 5 + 3 + 3

    ð Kết quả: (43 + 3) và (41 + 5)
    Nếu bạn không đủ giỏi, đừng cố đi ngược đám đông.

  • #2
    bỏ trong thẻ [CODE] đê phúc ơi!!!!

    Comment


    • #3
      @Phuc: check tin nhắn ở hộp thư nhé!
      http://httt.uit.edu.vn

      Comment


      • #4
        Originally posted by 11520288
        rồi đó, mày có thi cái này ko ? tao chả biết gì chương trình này luôn, tao đi học trễ hoài ít được nghe thông báo.
        uh có! nhưng mà làm xong tao xóa rồi, giờ lười ngồi code lại quá

        Comment


        • #5
          Originally posted by 11520288
          Em bỏ cái này khá lâu rồi. Lại chỉ biết có ngôn ngữ Pascal cùi thôi. Em không có tham gia chương trình istream này, mới nhận được cái đề từ bạn khác cho xem hồi sáng, giải gấp trong vòng hơn 1 tiếng tí, chưa kịp hoàn thiện nhiều vì hôm nay bận đi học thêm. Mong các anh chị, và các bạn chỉ dạy thêm.
          Ý của mình nè:
          bài 1. dùng hàm val chuyển thành số thì đối với việc cộng số có 30 chữ số là ko thể đc. mình ko nhớ val chuyển thành integer or longint or extended nhưng cả 3 kiểu lớn nhất của pascal này đều ko thoả mãn.
          Bài 2 cũng có tí vấn đề. Bạn quên xét năm nhuận, quên xét nếu trùng vào tháng chỉ có 30 ngày mà ngta nhập 31 thì sao?
          Bài 3 đệ quy lười phân tích quá nên mình ko ý kiến!

          Comment


          • #6
            ví dụ bài 3 cho sai r, hix khoa mình cho đề vd mà sai mới gê, 46 có trên 2 trường hợp có 2 số ng tố đó.
            mà nếu bạn mới làm 1 tí mà xong thì hay quá r. bài 3 Tú phải nhức đầu gê gớm lắm =.= lúc làm còn định bỏ!

            Comment


            • #7
              Mình có nhận xét bài của bạn Phúc là:
              Bài 1: Đúng như bạn Tú nói thì bài của bạn dùng cộng những số có trên 30 chữ số là ko thể được, ban đầu mình cũng làm y chang zậy nhưng anh Long có nói là bài này mục đích dùng để cộng những số cực kỳ cực kỳ lớn nên dùng int hoặc longint là ko khả quan (đề ko nói rõ điều này nên nhìu bạn làm cách này cũng là điều dễ hiểu).
              Bài 2: Thật ra mình ko hình dung được cái công thức của bạn cho lắm . Nhưng mình test vài kết quả như 1/1/1900 or 1/1/2100 thì sai (hình như bạn tính sai năm nhuận).
              Bài 3:Mình cũng lười phân tích quá. Lát ý kiến sau.
              Nếu bạn không đủ giỏi, đừng cố đi ngược đám đông.

              Comment


              • #8
                bài 2 công thức đó t cũng áp dụng! Google đó bạn Hoàng =)) suy nghĩ chi cho mệt! code sẵn tài nguyên thì cứ áp dụng thôi hị hị.

                Comment


                • #9
                  Với đề bài này box này thích hợp hơn cho các bạn. Và ở đây các bạn có thể nhận được nhiều ý kiến hơn

                  Comment


                  • #10
                    Ai làm bài 3 ko biết có check thử trên 500 ko?? Tú nhập 500 ngồi chờ mỏi cổ, nhập 600 cũng chờ xong máy báo tràn mảng =)))) Hix chắc giải thuật ẹ quá! Ai có giải thuật hay share mình với! Ghi ý tưởng thôi chứ đừng ghi code đọc mệt quá hix!

                    Comment


                    • #11
                      Ủa vậy à. Quá trình làm mình ko sử dụng google nên ko bít, xài thủ công cho chắc ăn. Mà công thức đó là công thức gì nhỉ, áp dụng bài này cho đáp án ko chính xác nè ???
                      Nếu bạn không đủ giỏi, đừng cố đi ngược đám đông.

                      Comment


                      • #12
                        Đây là bài 3 của mình nè, mấy bạn test thử. Sử dụng cái gợi ý của bạn Tú về cái giả thuyết gì gì ấy, nói chung là xài mẹo thôi chứ ko có code cao siêu gì cả .
                        Code:
                        Program bai_3_1;
                        uses crt;
                        var a,b:array[1..50] of integer;
                            dem,n,i,j,k,h:integer;
                            ok:boolean;
                        
                        begin
                        clrscr;
                        Write('Nhap N = '); readln(N);
                        
                        k:=1;
                        For i:=2 to N-1 do
                         begin
                          If i<4 then
                                 begin
                                 A[k]:=i;
                                 inc(k);
                                 end
                                 else
                                  begin
                                   ok:=true;
                                   For j:=2 to i-1 do
                                    If i mod j = 0 then ok:=false;
                                   If ok=true then
                                   begin
                                   a[k]:=i;
                                   inc(k);
                                   end;
                                  end;
                         end;
                        k:=k-1;
                        For i:=1 to k do Write(' ',a[i]);
                        Writeln;Write(' ');
                        For i:=1 to k*2-1 do Write('-');
                        writeln;
                        
                        ok:=false;
                        dem:=0;
                        For i:=1 to k do
                         For j:=i to k do
                         If a[i] + a[j] = N then
                                             begin
                                             ok:=true;
                                             b[1]:=a[i];
                                             b[2]:=a[j];
                                             inc(dem);
                                             Writeln('Cach thu ',dem);
                                             Write(b[1],'+',b[2]);
                                             writeln;
                                             end;
                        
                        If ok=false then
                                     begin
                                     For i:=1 to k do
                                      For j:=i to k do
                                       For h:=j to k do
                                       If a[i] + a[j] + a[h] = n then
                                                                 begin
                                                                 b[1]:=a[i];
                                                                 b[2]:=a[j];
                                                                 b[3]:=a[h];
                                                                 inc(dem);
                                                                 Writeln('Cach thu ',dem);
                                                                 Write(b[1],'+',b[2],'+',b[3]);
                                                                 writeln;
                                                                 end;
                                     end;
                        
                        
                        Readln;
                        end.
                        Nếu bạn không đủ giỏi, đừng cố đi ngược đám đông.

                        Comment


                        • #13
                          chính xác mà ta! t thử hết có cái nào sai đâu!Ko biết bạn Phúc lấy ở đâu nhưng công thức t kiếm đc hình như cũng na ná!

                          Comment


                          • #14
                            Originally posted by 11520673 View Post
                            chính xác mà ta! t thử hết có cái nào sai đâu!Ko biết bạn Phúc lấy ở đâu nhưng công thức t kiếm đc hình như cũng na ná!
                            Tú test thử 1/1/1900 và 1/1/2100 thử. Mở lịch trong win7 để đối chứng ý.
                            À Tú có thể post bài 2 của Tú lên cho H tham khảo chút được ko?
                            Last edited by 11520126; 21-10-2011, 00:04.
                            Nếu bạn không đủ giỏi, đừng cố đi ngược đám đông.

                            Comment


                            • #15
                              để t test thử.Mai nha! nó nằm máy khác t lười đổi máy quá!
                              ah. nhưng trc năm 1900 nó sẽ chạy ko đúng đâu! Hix trong google có giải thik như vầy: vì máy tính ra đời sau 1900, nên máy tính chọn ngày 1/1/1900 làm số 0 ( các ngày tháng trong máy tính cũng tính dựa theo kiểu số thôi). Code này tính dựa vào số luôn thì phải.thấy nó mod r div tùm lum đó.Bạn thử mở excel, xong gõ 1/1/1900 xem ) r gõ trc 1900 xem nó ra cái gì nha )
                              còn cách nào tối ưu tính đúng hết thì pó tay r! Sao mấy anh chị khóa trên ko vô đây nhỉ hix! bạn làm thủ công như thế nào thế? tính có đúng hết ko?
                              Last edited by 11520673; 21-10-2011, 00:21.

                              Comment

                              LHQC

                              Collapse
                              Working...
                              X