Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: cách tìm chử số đầu tiên của một số bất kỳ???

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

    Mặc định cách tìm chử số đầu tiên của một số bất kỳ???

    các bạn cho mình biết để tìm chử số đầu tiên của 1 số bất kỳ thì mình nên làm như thế nào nhỉ?? vd như 1542 thì số đầu tiên la 1

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Lần đầu chỉ làm quen nghe .Lần sau không post suy nghĩ là không có giúp đâu nhá !
    C++ Code:
    1. #include <iostream>
    2.  
    3. int findFirstDigit(int number)
    4. {
    5.   int first_digit;
    6.   while(number != 0){           //cho đến khi không còn số để xét
    7.     first_digit = number % 10; //lấy chữ số
    8.     number = number / 10;     //xét tới chữ số kế tiếp
    9.   }
    10.   return first_digit;
    11. }
    12.  
    13. int main()
    14. {
    15.   int _number;
    16.   std::cout << "Enter a number : ";
    17.   std::cin >> _number;
    18.  
    19.   std::cout << "First digit : " << findFirstDigit(_number);
    20.   return 0;
    21. }

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

    uhm dược rồi cảm ơn rox_rook nhá

  4. #4
    Ngày gia nhập
    07 2007
    Nơi ở
    Hồ Chí Minh
    Bài viết
    66

    Ta có thể chuyển con số đó wa chuỗi, lấy ra 1 kí tự đầu tiên(ở đây sẽ là con số đầu tiên) rồi chuyển ngược lại về số. Việc chuyển 1 kí tự về số ta có thể làm đơn giản là lấy mã nó trừ đi 0x30; (Vì 0-9 có mã từ 0x30 - 0x39)
    Vậy đơn giản ta làm như sau
    C Code:
    1. #include <stdio.h>
    2. void main()
    3. {
    4.     int b=1342423423;
    5.     char buff[30];
    6.     sprintf(buff,"%d",b);
    7.     b=buff[0]-0x30;
    8.     printf("%d",b);
    9. }
    Thèm khát con gái !!
    ......................

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

    hai ý tưởng trên của hai bạn kia mình có ý kiến thế này...
    các bạn cho mình biết để tìm chử số đầu tiên của 1 số bất kỳ thì mình nên làm như thế nào nhỉ?? vd như 1542 thì số đầu tiên la 1
    >>cách làm của rok_rook:mình nhập số âm vô thì hàm của bạn pó tay phải hok nào?vì là chữ số bất kỳ mà.Mà số âm thì vẫn nguyên đấy chứ mà số âm lấy modulo(%) khác với số nguyên.nên nhập số âm vô Ctrình chạy nhưng kết quả sai.
    >>nên mình hoàn toàn tán thành ý tưởng chuyển qua chuỗi rồi làm.Nhưng mà bạn cuxu code sao phức tạp thế dính đến nhị phân hay thập lục phân thì phải.Sao mình ko dùng hàm itoa() chuyển số sang chuỗi đó,trong thư viện <stdlib.h>.tuy là lâu nhưng chắc ăn chính xác.trong quá trình làm bài thi cử mình mắc lỗi này hoài.tại zì bị chủ quan ko đọc kĩ đề.

  6. #6
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định cách tìm chử số đầu tiên của một số bất kỳ???

    >>cách làm của rok_rook:mình nhập số âm vô thì hàm của bạn pó tay phải hok nào?vì là chữ số bất kỳ mà.Mà số âm thì vẫn nguyên đấy chứ mà số âm lấy modulo(%) khác với số nguyên.nên nhập số âm vô Ctrình chạy nhưng kết quả sai.
    Sai chỗ nào vậy cậu ?

  7. #7
    Ngày gia nhập
    12 2007
    Bài viết
    48

    cách của anh rook đúng mà, nếu nó ko modulus được số âm thì mình xài hàm abs để nó thành dương rồi mod ^ ^.
    "what you don't use you don't pay for" (Bjarne Stroustrup).

  8. #8
    Ngày gia nhập
    10 2007
    Bài viết
    24

    Tôi ko nói ý tưởng bạn sai,tôi cũng làm cách đó mà...Nhưng bắt lỗi ngặt wá sợ bạn cười mình nhưng mình xin nói ra sau đây:để xây dựng mà..
    Ctrình cũa bạn nha: khi chạy Bạn nhập số âm ví dụ -1236 >>kết quả:-1 dúng hok mà đề của chúng ta là"in ra chữ số đầu tiên" làm jì có dấu trừ.Bạn nghĩ là dấu trừ là của riêng chữ số đầu tiên hả bạn.Kết quả chỉ in ra số 1 là đúng nhất.Thôi thì bạn thông cảm nha mình ko muốn bắt lỗi ngặt ngèo đâu..nhưng cho các bạn có thắc mắc hỉu thôi..
    Tiện đây mình xin cảm ơn bạn Emerald214:dùng hàm abs() xong làm như của rok_rook hay hơn.Chứ chuyển qua chuỗi thì ko hay lắm.
    Thanks...Chúc các bạn thành công trong cuộc sống.

  9. #9
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Lưu ý là: Dấu âm (-) không được coi là chữ số. Cho nên một số âm sẽ có chữ số đầu tiên là số ngay sau dấu trừ. 2 đoạn code trên điều thiếu điều này.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

Các đề tài tương tự

  1. Bán nhà HXH Đinh Tiên Hoàng 106 m2 chỉ 6 tỷ
    Gửi bởi hoangtambds trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 29-08-2013, 02:10 PM
  2. Lập trình C In k số nguyên tố đầu tiên có tổng các chữ số là chắn trong mảng, lỗi chỉ kiểm tra được với số đầu tiên?
    Gửi bởi ncn1992vn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 23-11-2012, 10:20 PM
  3. Thứ tự ưu tiên các toán tử và ...???
    Gửi bởi whonghaiw trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 24-06-2012, 10:58 PM
  4. Bài tập C M bit đầu tiên biểu diễn N
    Gửi bởi zuro93 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 01-12-2011, 10:16 AM
  5. Mảng trên C Không in ra vị trí đầu tiên.
    Gửi bởi tuanvu199x trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 28-09-2011, 09:45 PM

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