Announcement

Collapse
No announcement yet.

Cuộc thi Lập trinh thuật toán

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Originally posted by 10520272 View Post
    ủa, sao máy mình chạy không được code này bạn (kể cả n = 2). Mình debug thấy biến k chả bao giờ tăng cả --> lặp mãi không thôi. Mình cũng không hiểu rõ thuật toan của bạn lắm. Bạn vui lòng giải thích rõ hơn tí cho mình học tập với được không.
    Cảm ơn bạn.
    PHP Code:
    #include <stdio.h>
    int main()
    {
        
    long int n,i,j,k,l;
        
    //do scanf("%ld",&n);while ((n<=0)||(n>1000));
        
    n=450000;
        
    long int m[n];//Tạo mảng chứa các số nguyên tố từ 1 đến n
        
    m[0]=2;
        
    k=0;//k là chỉ số của mảng, bắt đầu =0
        
    for (i=3;k<=n-1;i++)//bắt đầu kiểm tra i có phải là số nguyên tố
            
    for (j=0;;j++)//Chạy j là chỉ số của mảng
            
    {
                
    l=(m[j]*m[j]);//tính l=bình phương giá trị đang xét của mảng
                
    if (l>i)//nếu l>i thì đó là số nguyên tố 
                
    {
                    
    k++;//tăng k để tăng giá trị chỉ số tiếp theo của mảng. 
                    
    m[k]=i;//lưu giá trị i vào mảng
                    
    break;
                }
                if (
    i%m[j]==0) break;//nếu i chia hết cho bất kì số nào trong mảng thì i không là nguyên tố
            
    }
        
    printf("So nguyen to thu %ld la: %ld",n,m[k-1]);


    Comment


    • Originally posted by 11520132 View Post
      PHP Code:
      #include <stdio.h>
      int main()
      {
          
      long int n,i,j,k,l;
          
      //do scanf("%ld",&n);while ((n<=0)||(n>1000));
          
      n=450000;
          
      long int m[n];//Tạo mảng chứa các số nguyên tố từ 1 đến n
          
      m[0]=2;
          
      k=0;//k là chỉ số của mảng, bắt đầu =0
          
      for (i=3;k<=n-1;i++)//bắt đầu kiểm tra i có phải là số nguyên tố
              
      for (j=0;;j++)//Chạy j là chỉ số của mảng
              
      {
                  
      l=(m[j]*m[j]);//tính l=bình phương giá trị đang xét của mảng
                  
      if (l>i)//nếu l>i thì đó là số nguyên tố 
                  
      {
                      
      k++;//tăng k để tăng giá trị chỉ số tiếp theo của mảng. 
                      
      m[k]=i;//lưu giá trị i vào mảng
                      
      break;
                  }
                  if (
      i%m[j]==0) break;//nếu i chia hết cho bất kì số nào trong mảng thì i không là nguyên tố
              
      }
          
      printf("So nguyen to thu %ld la: %ld",n,m[k-1]);

      Cảm ơn bạn, bây giờ thì mình đã hiểu.

      Comment


      • Ý em là chỉ số "0" thì không viết ra hay in ra "0"
        ( còn "10" thì in ra "1"
        "102" thì vẫn in ra "201" : hai cái này thì ok )

        Comment


        • Originally posted by 11520132 View Post
          Ý em là chỉ số "0" thì không viết ra hay in ra "0"
          ( còn "10" thì in ra "1"
          "102" thì vẫn in ra "201" : hai cái này thì ok )
          input = 0 => output = 0;
          input = 10 => ouput = 1;
          input = 102 => output = 201;

          ==> OK

          Ý mình là có nhiều bạn
          Input = 1203 => Output = 321
          hoặc
          Input = 1203 => Output = 3
          Khoảng cách giữa bạn và ước mơ của bạn là bao xa ?

          Comment


          • Originally posted by 11520132 View Post
            Ý em là chỉ số "0" thì không viết ra hay in ra "0"
            ( còn "10" thì in ra "1"
            "102" thì vẫn in ra "201" : hai cái này thì ok )
            "0" thì vẫn in ra "0" bạn à.

            ------------------ ******************** ---------------------

            Mọi vấn đề đã xong. Giờ thì ngồi chờ kết quả thôi.
            Chúc tất cả may mắn (chúc mình luôn) =)).
            Last edited by 10520272; 19-11-2011, 14:20.

            Comment


            • Originally posted by 10520272 View Post
              "0" thì vẫn in ra "0" bạn à.

              ------------------ ******************** ---------------------

              Mọi vấn đề đã xong. Giờ thì ngồi chờ kết quả thôi.
              Chúc tất cả may mắn (chúc mình luôn) =)).
              Ôi, lúc đầu ví dụ có cái này thì đỡ, trường hợp đặc biệt mà, hjx . Làm tưởng số 0 ở đầu thì không viết

              Comment


              • Originally posted by 11520132 View Post
                Ôi, lúc đầu ví dụ có cái này thì đỡ, trường hợp đặc biệt mà, hjx . Làm tưởng số 0 ở đầu thì không viết
                Nên mấy ngày trước mình mới bảo là mấy bạn chú ý tối ưu tùm lum tà la để rồi sai những thứ lắc nhắc )
                Khoảng cách giữa bạn và ước mơ của bạn là bao xa ?

                Comment


                • Đây là code 4 bài của mình, các bạn cho nhận xét. Thời gian làm bài: 6 phút 19 giây
                  PHP Code:
                  #include <iostream>
                  using namespace std;

                  int isprime(int n)
                  {
                      for (
                  int i 2;<= n;++i)
                          if (
                  == 0) return 0;
                      return 
                  1;
                  }
                  int main()
                  {
                      
                  int n,i,j;
                      
                  cin >> n;
                      for (
                  2,0;n;++i)
                          if (
                  isprime(i)) ++j;
                      
                  cout << (1) << endl;
                      return 
                  0;

                  PHP Code:
                  #include <iostream>
                  using namespace std;

                  int main()
                  {
                      
                  long long int n,res;
                      
                  cin >> n;
                      
                  res = (* (1)) / 2;
                      
                  cout << res << endl;
                      return 
                  0;

                  PHP Code:
                  #include <iostream>
                  using namespace std;

                  int main()
                  {
                      
                  long long int n;
                      
                  cin >> n;
                      if (
                  == 0cout << '0' << endl;
                      else
                      {
                          while (
                  10 == 0/= 10;
                          while (
                  n) {cout << 10/= 10;}
                          
                  cout << endl;
                      }
                      return 
                  0;

                  PHP Code:
                  #include <iostream>
                  using namespace std;

                  int main()
                  {
                      
                  int n,res;
                      
                  cin >> n;
                      
                  res * (3);
                      if (
                  == 2) ++res;
                      
                  cout << res << endl;
                      return 
                  0;

                  How fast can you code ?
                  Last edited by 09520019; 19-11-2011, 20:24.
                  Khoảng cách giữa bạn và ước mơ của bạn là bao xa ?

                  Comment


                  • Anh Châu thì pro rồi....vừa code vừa nghĩ chỉ được 30 phút... hichic bài 4 em làm dài hơn anh... bài này em vét được bao nhiều thì vét hì hì
                    Code:
                       
                    #include <iostream>
                    
                    using namespace std;
                    
                    long check(long n)
                    {
                        long s =0;
                        while(n!=0)
                        {
                               s = s+n%10;
                               n=n/10;   
                        }
                        return s;
                    }
                    
                    int main()
                    {
                        long i,n,count=0;
                        long sum = 0;
                        cin >> n;
                        for(i=1;i<=n;i++)
                        {
                                    sum = sum+check(i);
                                    if(sum%3==0) count++;            
                        }
                        cout << count <<endl;
                        return 0;
                    }
                    Bài một em có cùng suy nghĩ với anh...
                    Code:
                    #include <iostream>
                    #include <math.h>
                    
                    using namespace std;
                    
                    int main()
                    {
                      long i=0,result=1;
                      int n;
                      cin >> n;
                      while(i!=n)
                      {  
                            int d=2;
                            result++;
                            while(result%d!=0&&d<=sqrt(result))
                             d++;
                            if(d>sqrt(result))
                               i++;  
                      }
                      cout << result << endl;
                      return 0;
                    }
                    Còn 2 bài kia thì em nghĩ bạn nào làm cũng được hì hì
                    Last edited by 10520180; 19-11-2011, 15:24.

                    Comment


                    • Originally posted by 10520180 View Post
                      Anh Châu thì pro rồi....em code chỉ được 30 phút... hichic bài 4 em làm dài hơn anh...
                      Mình không nói đến pro hay không , nhưng mình học được 1 điều từ thi Olympic:
                      Miễn sao Accepted là được rồi, code càng ngắn càng tốt để thời gian.....làm việc khác :P
                      Khoảng cách giữa bạn và ước mơ của bạn là bao xa ?

                      Comment


                      • Em thì nghĩ ra thuật toán cũng tạm nhưng diễn giải nó thành code thì hơi cực. Mới nhúng tay vào đống bày nhày này khó mà quen.

                        Comment


                        • Originally posted by 09520019
                          How fast can you code ?
                          Bài 1. 5' để code xong, vài ngày để tối ưu và đến giờ vẫn chưa thỏa mãn.
                          Bài 2. 1'30'' =)), vừa đủ vượt lên chính mình.
                          Bài 3. 1'30'' xong, nhưng ~15' để tối ưu và lo hết những phần lảm nhảm.
                          Bài 4. 1 buổi chiều ngồi cm công thức (cm bằng quy nạp =))). Và cỡ 1' để code.

                          Originally posted by 09520019 View Post
                          Mình không nói đến pro hay không , nhưng mình học được 1 điều từ thi Olympic:
                          Miễn sao Accepted là được rồi, code càng ngắn càng tốt để thời gian.....làm việc khác :P
                          Quá đúng, bài học xương máu từ đợt thi lần này là đừng rảnh mà tối ưu quá yêu cầu của đề (chả thêm đc gì nhiều), nên để thời gian đó nghiên cứu những cái khác.
                          Một điều nữa tuy đã được nhắc rất nhiều nhưng vẫn hay xảy ra là : "Những trường hợp tầm thường là những trường hợp dễ sai nhất". Hãy luôn nghĩ đến điều đó khi làm bài.
                          Last edited by 10520272; 19-11-2011, 15:14.

                          Comment


                          • sặc, dính chưởng bài 2. Vẫn để int, ko để ý cái giới hạn, hjx.
                            Bài 3 vô tình đúng, hjhj: 2 bài kia ko nói.
                            Code:
                            #include<stdio.h>
                            void main()
                            {
                                int a,i=10;
                                long long n,s=0;
                                scanf("%lld",&n);
                                while (n>0)
                                {
                                    a=n%10;
                                    s=s*i+a;
                                    n=n/10;
                                }
                                printf("%lld",s);
                            
                            }
                            Nếu bạn không đủ giỏi, đừng cố đi ngược đám đông.

                            Comment


                            • Bài 3: Cho số nguyên dương n (n <= 1018). Lập trình in ra số nguyên dương m có nghĩa với m là n theo thứ tự ngược lại.
                              Số nguyên dương thì làm gì có số 0

                              Comment


                              • Originally posted by 09520668 View Post
                                Số nguyên dương thì làm gì có số 0
                                Hôm bữa mình thảo luận với BTC về cái đề và bên BTC đã loại test này ra khỏi hệ thống chấm, nhưng có hay không thì có rất nhiều bạn panic, chứng tỏ rằng đây là bug bất ngờ. Nếu mà bữa đó mình không thảo luận thì đảm bảo test này vẫn còn trong hệ thống chấm ((chuckle))
                                Chúc các bạn may mắn trong vòng 2 ((chuckle))
                                Nhớ đọc kỹ đề ((chuckle)) <= Cái bug này gây panic cho nhiều bạn lắm đấy )

                                dangchau1991(11/17/2011 6:53:44 PM) : Bài 3: Cho số nguyên dương n (n <= 10^18). Lập trình in ra số nguyên dương m có nghĩa với m là n theo thứ tự ngược lại.
                                dangchau1991(11/17/2011 6:53:47 PM) :
                                dangchau1991(11/17/2011 6:53:53 PM) : sao không cho số nguyên không âm đi
                                dangchau1991(11/17/2011 6:53:53 PM) :
                                dangchau1991(11/17/2011 6:54:00 PM) : 0 <= n <= 10^18
                                dangchau1991(11/17/2011 6:54:07 PM) : đảm bảo input = 0 nhiều đứa sai
                                An Cao văn(11/17/2011 6:54:15 PM) : anh quên
                                dangchau1991(11/17/2011 6:54:24 PM) :
                                dangchau1991(11/17/2011 6:54:30 PM) : vậy h ko có test đó huh
                                dangchau1991(11/17/2011 6:54:32 PM) : chán vậy =.=
                                An Cao văn(11/17/2011 6:54:33 PM) : có em
                                An Cao văn(11/17/2011 6:54:35 PM) : hehe
                                dangchau1991(11/17/2011 6:54:36 PM) : èo
                                dangchau1991(11/17/2011 6:54:46 PM) : đề ảo vậy
                                An Cao văn(11/17/2011 6:54:58 PM) : vậy là ko d9uo75c
                                An Cao văn(11/17/2011 6:55:02 PM) : anh sơ ý mất
                                An Cao văn(11/17/2011 6:55:05 PM) : để bỏ test đó
                                An Cao văn(11/17/2011 6:55:07 PM) : ko sao
                                An Cao văn(11/17/2011 6:55:11 PM) : vòng này zui thôi
                                An Cao văn(11/17/2011 6:55:19 PM) : vòng 2 mới gây cấn
                                An Cao văn(11/17/2011 6:55:20 PM) : hehe
                                dangchau1991(11/17/2011 8:40:39 PM) : thôi kệ anh để lại cái test đó đi cho nó hào hứng
                                dangchau1991(11/17/2011 8:40:40 PM) :
                                dangchau1991(11/17/2011 8:40:43 PM) : hehehehehehe
                                dangchau1991(11/17/2011 8:40:57 PM) : để bữa 0:05 20/11
                                dangchau1991(11/17/2011 8:41:02 PM) : em đi post solution
                                dangchau1991(11/17/2011 8:41:09 PM) : cho tụi nó hoảng chơi
                                dangchau1991(11/17/2011 8:41:09 PM) : ^_^
                                An Cao văn(11/17/2011 8:43:59 PM) : hi
                                An Cao văn(11/17/2011 8:44:01 PM) : ko được
                                An Cao văn(11/17/2011 8:44:05 PM) : vậy là ko đúng
                                An Cao văn(11/17/2011 8:44:06 PM) : hehe
                                An Cao văn(11/17/2011 8:44:09 PM) : mà hem sao
                                dangchau1991(11/17/2011 8:44:09 PM) : =.=
                                An Cao văn(11/17/2011 8:44:13 PM) : bỏ test đó cũng hok sao
                                dangchau1991(11/17/2011 8:44:14 PM) : có 1 test thôi mà
                                dangchau1991(11/17/2011 8:44:15 PM) :
                                dangchau1991(11/17/2011 8:44:17 PM) : èo
                                dangchau1991(11/17/2011 8:44:22 PM) : có còn test bẫy nào nữa đâu
                                An Cao văn(11/17/2011 8:44:22 PM) : giờ mới có 2 người max điểm ah
                                dangchau1991(11/17/2011 8:44:22 PM) :
                                An Cao văn(11/17/2011 8:44:25 PM) : uh
                                Last edited by 09520019; 19-11-2011, 16:28.
                                Khoảng cách giữa bạn và ước mơ của bạn là bao xa ?

                                Comment

                                LHQC

                                Collapse
                                Working...
                                X