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

Đề tài: Phân rã số nguyên bất kỳ thành tổng hệ 10

  1. #1
    Ngày gia nhập
    06 2011
    Bài viết
    6

    Mặc định Phân rã số nguyên bất kỳ thành tổng hệ 10

    Mọi người gợi ý mình về bt này với. vd 5301= 5000+ 300+ 1

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Bạn biểu diễn số đó trên giấy.
    Chẻ từng chữ số ra, xem chữ số này từ đâu mà có (công thức gì để chẻ nó ra dc).
    Rồi chữ số này cần biến đổi thêm điều gì để nó ra dc như vậy : Vd , chẻ ra dc số 1, thì nó là 1.
    Chẻ ra dc 0, là 0 chục , chẻ ra số 3 là 300 , số 5 là 5000 .
    Bạn tìm quy luật dc các vấn đề trên tức là bạn có thể giải quyết dc bài toán đó

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

    Bạn tách số đó ra lưu vào 1 mảng. Ví dụ 5301 thì sau khi tách sẽ được a[]={1,0,3,5};

    Bây giờ chỉ cần dùng vòng for cho i chạy từ 0 đến hết, mỗi lần xuất ra a[i] * 10^i là ok

    Ví dụ:

    • 1 * 10^0 = 1 * 1 = 1
    • 0 * 10^1 = 0 * 10 = 0
    • 3 * 10^2 = 3 * 100 = 300

    ...

  4. #4
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    C++ Code:
    1. #include < iostream >
    2. #include < math.h >
    3. int main(int argc, char *argv[]){
    4.     int count = 0;
    5.     int n, temp;
    6.    
    7.     std::cout << "Enter n: ";
    8.     std::cin >> n;
    9.  
    10.     temp = n;
    11.  
    12.     while(temp){
    13.         temp /= 10;
    14.         count ++;
    15.     }
    16.  
    17.     std::cout << count << std::endl;
    18.  
    19.     do
    20.     {
    21.         int x = n % 10;
    22.         std::cout << (x * pow(10.0, count  - 1)) << " + ";
    23.         n /= 10;
    24.         -- count ;
    25.     }while(count != 0);
    26.  
    27.     system("pause");
    28.     return 0;
    29. }
    Đã được chỉnh sửa lần cuối bởi aydada : 26-10-2011 lúc 08:08 AM.

  5. #5
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Nếu n là số nguyên thì làm thuật toán thuần số nguyên nhanh hơn

    dùng nguyên tắc
    trị của một dơn vị = (số % đơn vị trước nó) - (số % dơn vị của nó)
    trị hàng ngàn = số % 10000 - số % 1000

    C Code:
    1. int dv = 10, tri, coDau = 0; // đơn vị, trị, và trị có số trước nó hay chưa (để in +)
    2. while (n/dv) dv *= 10; // dv là đơn vi trước trị
    3. while (dv > 1)
    4. {
    5.   tri = n % dv;
    6.   dv /= 10;
    7.   tri -= n % dv;
    8.   if (tri || coDau==0) // chỉ in nếu có trị, nhưng nếu không có phần coDau==0 thì khi n=0 sẽ bị bỏ rơi
    9.   {
    10.     if (coDau++) printf(" + ");
    11.     printf("%s", tri);
    12.   }
    13. }
    14.  
    15. // lưu ý: code này có nhược điểm là chỉ tính được đến hàng kế Max Int thôi (tưc là n <= 999,999,999)
    16. // nếu muốn tính đến Max Int (khoảng 2 tỷ) thì phải thêm code để in hàng tỷ trước,
    17. // rồi tiếp tục tính với n %= 1000000000;
    18.  
    19. if (n >= 1000000000)
    20. {
    21.   tri = n;
    22.   n %= 1000000000;
    23.   printf("%d", tri-n);
    24.   coDau++;
    25. }
    Đã được chỉnh sửa lần cuối bởi VoTichSu : 21-10-2011 lúc 11:14 AM.

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

  1. Bài tập C giải thuật nhập vào số nguyên n in ra n số nguyên tố đầu tiên?
    Gửi bởi LTC trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 48
    Bài viết cuối: 25-04-2013, 07:40 PM
  2. Viết chương trình nhập số nguyên dương n, liệt kê n số nguyên tố đầu tiên.
    Gửi bởi maiit trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 11
    Bài viết cuối: 19-06-2011, 01:05 PM
  3. Game Viết chương trình nhập số nguyên dương n, liệt kê n số nguyên tố đầu tiên trên C#?
    Gửi bởi maiit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 18
    Bài viết cuối: 08-06-2011, 11:12 PM
  4. Bài tập C++ chương trình đổi 1 số nguyên trong hệ thập phân sang hệ fibo và cộng 2 số nguyên được
    Gửi bởi nghiapro512 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 23-01-2011, 02:14 PM
  5. Lập trình C xin code cài đặt thuật toán sàng nguyên tố để liệt kê các số nguyên tố 2->480000
    Gửi bởi ngocdung_088 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 23
    Bài viết cuối: 06-12-2010, 11:53 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