Announcement

Collapse
No announcement yet.

Nơi luyện tập về lập trình C - Môn Nhập môn Lập trình

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

  • #76
    Originally posted by 14520692 View Post
    Thầy coi giúp em bài code bài này ạ, em submit bị Time Limit...
    Chuyển số nguyên sang nhị phân (64 bits).
    PHP Code:
    #include <stdio.h>
    main(){
        
    long long a;                // kieu long long 8byte phu hop bo test
        
    while(scanf("%lld",&a)>=1){
        
    unsigned long long x;
            for (
    int i=63;i>=0;i--){// lay bit
                
    x=a<<(63-i);        // 
                
    x=x>>63;            //
                
    printf("%d",x);
            }
        
    //printf("\n");
        
    }


    Em chú ý:
    Đọc kỹ đề, file input có tên là BaiE.inp. File này có 1 con số ghi số lượng bộ test

    Đây là 1 đoạn trong file BaiE.inp
    PHP Code:
    5
    -126
    -127
    -128
    0
    -
    Do đó đoạn code em viết như sau
    PHP Code:
    #include <stdio.h>
    main()
    {
        
    FILEf;//,*g;
        
    XXXX n,a;
        
    char m[65], daui;
        
    fopen("BaiE.inp","rt");
        
    fscanf(f,"%d",&n);
        while (
    n--)
        {
            
    fscanf(f,"%d",&a);

                    
    // Xử lý chuyển a qua nhị phân và lưu vào mảng m
            
    for (i=0;i<64;i++) printf("%d",m[i]);
            
    printf("\n");
        }
        
    fclose(f);


    Comment


    • #77
      Email: 14520130@gm.uit.edu.vn .Thầy tạo giùm e ạ!

      Comment


      • #78
        Thầy tạo giúp em với: 14520429@gmail.com
        My blog: http://niviki.com

        Comment


        • #79
          Originally posted by 14520725 View Post
          Email: 14520725@gm.uit.edu.vn Thầy tạo giúp em
          Đã có rồi mà em: team236

          Originally posted by 14520130 View Post
          Email: 14520130@gm.uit.edu.vn .Thầy tạo giùm e ạ!
          Đã có rồi mà em: team223

          Originally posted by 14520485 View Post
          14520485@gm.uit.edu.vn đây lun thầy ơi
          Tôi mới tạo:username: team256 pass là MSSV của em

          Originally posted by 14520429 View Post
          Thầy tạo giúp em với: 14520429@gmail.com
          Đã có rồi mà em. Em xem lại ở http://acm.uit.edu.vn/pc2team/dist

          Comment


          • #80
            Thầy ơi cho em hỏi. Sao trên máy tính của mình chương trình chạy bình thường mà khi submit lại bị báo Compilation Error??
            Cụ thể là code của e đây @@! và một số bạn cũng bị mà k rõ nguyên nhân lắm. Thầy nói rõ hơn về lỗi này giúp e

            PHP Code:
            #include <stdio.h>

            char LayBit(long long n,char i)    //Lay bit o vi tri i
            {
                if (
            n<0)    n=-n;
                return (
            n>>i)%2+48;        //+48 --> ki tu '0' or '1'
            }

            char Byte(long long n)            //xem n la so bao nhiu Byte
            {
                if (
            n<0)    n=-n;
                
            char x;
                
            x=1;
                while (
            n/2!=0)
                {
                    
            n=n/2;
                    
            x++;
                }
                return 
            x;
            }

            main()
            {
                
            int n;
                
            long long a;
                
            FILEf;
                
            fopen("BaiE.inp","rt");
                
            fscanf(f,"%d",&n);

                while(
            n>0)
                {
                    
            fscanf(f,"%lld",&a);
                    
            char str[65];
                    
            int i;
                    
            //Khoi tao chuoi 0000..0000
                    
            for (i=0;i<64;i++)
                        
            str[i]='0';
                    
            str[64]=0;
                    
                    
            //Buoc 1: lay ma nhi phan
                    
            for (i=0;i<Byte(a);i++)
                        
            str[63-i]=LayBit(a,i);
                    
                    
            //Thuc hien khi a la so am
                    
            if (a<0)
                    {
                        
            //Buoc 2: Dao bit
                        
            for (i=0;i<64;i++)
                            if (
            str[i]=='0')    str[i]='1';
                            else                
            str[i]='0';
                        
                        
            //Buoc 3: Cong 1
                        
            if (str[63]=='0')    str[63]='1';
                        else
                        {
                            
            i=63;
                            while (
            str[i-1]!='0')
                            {
                                
            str[i]='0';
                                
            i--;
                            }
                            
            str[i]='0';
                            if (
            i>0)    str[i-1]='1';
                        }
                        
                        
            //Buoc 4: Cho bit dau = 1
                        
            str[0]='1';    
                    }
                    
            printf("%s\n",str);
                    
            n--;
                }
                
            fclose(f);

            Last edited by 14520052; 24-12-2014, 18:31.

            Comment


            • #81
              Originally posted by 14520052 View Post
              Thầy ơi cho em hỏi. Sao trên máy tính của mình chương trình chạy bình thường mà khi submit lại bị báo Compilation Error??
              Cụ thể là code của e đây @@! và một số bạn cũng bị mà k rõ nguyên nhân lắm. Thầy nói rõ hơn về lỗi này giúp e
              Tôi đưa lên chạy được mà em. Có bạn post nhầm file exe lên như bạn 14520976, khi post bài B.
              Attached Files
              Last edited by toannv; 24-12-2014, 21:06.

              Comment


              • #82
                Originally posted by toannv View Post
                Tôi đưa lên chạy được mà em. Có bạn post nhầm file exe lên như bạn 14520976, khi post bài B.
                E copy ra file mới thì submit đc. @@! chẳng hiểu nỗi !!

                Comment


                • #83
                  Originally posted by 14520052 View Post
                  E copy ra file mới thì submit đc. @@! chẳng hiểu nỗi !!
                  Do em đặt tên file có khoảng cách

                  Comment


                  • #84
                    Originally posted by toannv View Post
                    Do em đặt tên file có khoảng cách
                    Cảm ơn thầy! Rút kinh nghiệm

                    Comment


                    • #85
                      Thầy ơi cho em hỏi mấy bài đòi hỏi output là "n dòng lưu trữ" ví dụ như bài I :Lãi suất ngân hàng thì mình phải xuất như thế nào mới đúng ?

                      Comment


                      • #86
                        Originally posted by 14520138 View Post
                        Thầy ơi cho em hỏi mấy bài đòi hỏi output là "n dòng lưu trữ" ví dụ như bài I :Lãi suất ngân hàng thì mình phải xuất như thế nào mới đúng ?
                        Ví dụ có ghi rõ đó em: xuất ra màn hình n dòng, mỗi dòng một kết quả

                        Comment


                        • #87
                          Thầy ơi cho em hỏi code của em bị sai chỗ nào mà submit k được? Nó cứ bị wrong answer @@
                          PHP Code:
                          #include<stdio.h>
                          #include<math.h>
                          main()
                          {
                              
                          FILE *f;
                              
                          int n,i,temp1;
                              
                          float temp2;
                              
                          double temp;
                              
                          f=fopen("BaiI.inp","rt");
                              
                          fscanf(f,"%d",&n);
                              for (
                          i=0;i<n;i++)
                                  {
                                      
                          fscanf(f,"%lf",&temp);//so tien
                                      
                          fscanf(f,"%d",&temp1);//so thang
                                      
                          fscanf(f,"%f",&temp2);//lai suat
                                      
                          printf ("%lld\n",(unsigned long long)(temp*pow(1+temp2,temp1)+0.5));
                                  }
                              
                          fclose(f);

                          Comment


                          • #88
                            Originally posted by 14520138 View Post
                            Thầy ơi cho em hỏi code của em bị sai chỗ nào mà submit k được? Nó cứ bị wrong answer @@
                            PHP Code:
                            #include<stdio.h>
                            #include<math.h>
                            main()
                            {
                                
                            FILE *f;
                                
                            int n,i,temp1;
                                
                            float temp2;
                                
                            double temp;
                                
                            f=fopen("BaiI.inp","rt");
                                
                            fscanf(f,"%d",&n);
                                for (
                            i=0;i<n;i++)
                                    {
                                        
                            fscanf(f,"%lf",&temp);//so tien
                                        
                            fscanf(f,"%d",&temp1);//so thang
                                        
                            fscanf(f,"%f",&temp2);//lai suat
                                        
                            printf ("%lld\n",(unsigned long long)(temp*pow(1+temp2,temp1)+0.5));
                                    }
                                
                            fclose(f);

                            Bài này của em đúng. Em yên tâm

                            Comment


                            • #89
                              Cảm ơn thầy! Mà tại sao khi dùng công thức tính nhanh thì không đúng mà dùng vòng lặp thì lại đúng?Khó hiểu @@

                              Comment


                              • #90
                                Originally posted by 14520138 View Post
                                Cảm ơn thầy! Mà tại sao khi dùng công thức tính nhanh thì không đúng mà dùng vòng lặp thì lại đúng?Khó hiểu @@
                                Vòng lặp đúng thực tế hơn

                                Comment

                                LHQC

                                Collapse
                                Working...
                                X