Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: Bài tập về số đối xứng

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    10

    Mặc định Bài tập về số đối xứng

    Bài này em đã làm rất nhiều lần mà vẫ chưa ra kết quả rì cả, ai giúp em với:

    Đề bài: "Hãy viết một chương trình để khi nhập vào số n từ keyboard (ko giới hạn n) chương trình sẽ in ra màn hình tất cả các số đối xứng có trong khoảng từ 1 đến n và đếm xem có bao nhiêu số đối xứng trong dãy này".

    Nếu bài này giới hạn n thì dễ, nhưng ở đây lại ko giới hạn. Vì vậy em chưa tìm ra ý tưởng nào hay cả....Mọi người chia sẻ nhá .

    Tiện thể cho em hỏi thêm: Để tính tổng của mỗi hàng, cột trong ma trận thì làm thế nào ạ?
    P/S: Mọi người cho em ý tưởng thôi, để em tự làm, chỗ nào khó mọi người code 1 đoạn cũng được.
    Thanks very much !!!
    Đã được chỉnh sửa lần cuối bởi h33h : 05-04-2008 lúc 09:09 PM.
    Em yêu anh không hề toan tính
    Tình yêu mình vô đối phải không anh!

  2. #2
    Ngày gia nhập
    03 2008
    Nơi ở
    TP HCM
    Bài viết
    30

    Theo mình bạn cho vào 1 mảng và kiểm tra xem mảng đó có đối xứng hay không( cho 2 biến i,j chạy từ đầu và cuối if( a[i] != a[j] ) return 0 ).
    Hay bạn có thể /10 để làm mà không cần cho vào mảng.
    Còn tính tổng mỗi hàng,mỗi cột trong ma trận thì bạn muốn tính hàng nào thì xét trên hàng đó, và cột cũng vậy.Chúc bạn may mắn.

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    10

    Ở đây là xét tổng của từng hàng,cột một cơ, mà phải xét lần lượt tất cả (trong khi mình chưa biết có bao nhiêu hàng, cột được nhập). Còn nếu chỉ xét những hàng, cột nhất định thì rất đơn giản.
    VD: nhập ma trận có 3 hàng 2 cột thì kết quả thế này:
    Tong cua moi hang, cot la:
    Hang 1: 2
    Hang 2: 13
    Hang 3: 8
    Cot 1: 5
    Cot 2: 24
    Giúp mình nhá...( các số trên là ví dụ thôi)
    Em yêu anh không hề toan tính
    Tình yêu mình vô đối phải không anh!

  4. #4
    Ngày gia nhập
    03 2008
    Nơi ở
    TP HCM
    Bài viết
    30

    Theo mình thì bạn viết 2 hàm.Một hàm tính tổng từng hàng,một hàm tính tổng từng cột.
    Bạn nói khi mình chưa biết có bao nhiêu hàng cột được nhập thì trong hàm main bạn có thể dùng 1 vòng for + với 2 hàm trên để in ra từ 1-->n (hàng) hay từ 1-->m (cột ).Chúc bạn may mắn

  5. #5
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Mình rất hoan nghênh tinh thần và ý chí của bạn, ý tưởng cho bài không giới hạn n là ta sử dụng mảng ký tự thay vì số, sau đó dùng hàm atoi ép kiểu nó về số, như vậy sẽ không bị giới hạn, và từ đó tính như bình thường với số thôi.
    ttecak ?

  6. #6
    Ngày gia nhập
    03 2008
    Bài viết
    10

    Mặc định Bài tập về số đối xứng

    comeonbaby nói thế mình ko hiểu :(( vì mình mới học C. Bi giờ mình mới học được scanf, printf, các hàm loop ( for,while,do..while), array và pointer. Thế thôi, có cách giải nào mà chỉ dựa vào những thứ đó ko? Còn nếu bất đắc dĩ thì bạn cho code của bài giải dùng hàm atoi gì đó cũng được ( nhớ kèm theo giải thích nhá).
    Thx so much...!!!
    Em yêu anh không hề toan tính
    Tình yêu mình vô đối phải không anh!

  7. #7
    Ngày gia nhập
    04 2008
    Bài viết
    4

    C Code:
    1. #include <stdio.h>
    2.  
    3. void main ()
    4. {
    5.     long n, nguoc=0;
    6.     do
    7.     {
    8.         printf ("Nhap vao so nguyen n (0<n<=2,000,000,000) de xac dinh so doi xung: ");
    9.         scanf ("%ld", &n);
    10.         }
    11.     while ((n<0)||(n>2000000000));
    12.     long tam = n;
    13.     while (tam)
    14.     {
    15.         nguoc = nguoc*10+tam%10;
    16.         tam /= 10;
    17.         }
    18.     if (nguoc==n)
    19.         printf ("%ld la so doi xung!", n);
    20.     else
    21.             printf ("%ld khong phai la so doi xung!", n);
    22. }

  8. #8
    Ngày gia nhập
    04 2008
    Bài viết
    4

    h33h hỏi bài này nên mình nghĩ là bạn chưa học mảng, vậy thì cứ dùng số kiểu long là được rồi (ko thì Unsigned long luôn).

    Bài trên ngắn quá nên mình viết ra cái rẹt luôn trong hàm Main, đúng ra nên tách riêng hàm số đối xứng để sau này có thể dùng lại (các bài tập mảng sau này nhất định bảo tìm số đối xứng của mảng nhập vào ^^).

  9. #9
    Ngày gia nhập
    03 2008
    Bài viết
    10

    Rất cảm ơn bạn, nhưng hình như bạn chưa đọc kỹ đề bài lắm. Đề bài gồm 3 vấn đề sau: n không giới hạn, in ra tất cả các số đối xứng thuộc khoảng (1,n), rồi đếm có bao nhiêu số đối xứng.
    Ví dụ nà:
    Giả sử n=100
    printf ra là: 11 22 33 44 55 66 77 88 99
    "có tất cả 9 số đối xứng trong khoảng đã cho".
    Em yêu anh không hề toan tính
    Tình yêu mình vô đối phải không anh!

  10. #10
    Ngày gia nhập
    03 2008
    Nơi ở
    TP HCM
    Bài viết
    30

    Theo mình thì để in ra các số đối xứng nhỏ hơn n
    Các số đối xứng đó = 1->9 nhân với 11 rồi 111,1111,....
    Còn vấn đề là lúc nào nhấn với 11,111,1111...và số cho ra nhỏ hơn thì bạn chỉ dùng thêm điều kiện

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn