Hiển thị kết quả từ 1 đến 4 / 4
  1. #1
    Tham gia
    10-08-2011
    Bài viết
    183
    Like
    13
    Thanked 164 Times in 35 Posts

    Giúp mình tìm thuật toán đệ quy bài này với!

    Các bạn giúp mình 3 bài đệ quy này với, mình nghĩ hoài cũng ko ra, không hiểu lun! ( t.t đệ quy nha)

    1. Tìm tất cả các số lẻ có 4 chữ số bít rằng khi đảo trật tự của các chữ số thì ta thu được một số nguyên tôt cùng nhau với số đã cho?
    2. Một số nguyên tô có k chũ số được gọi là số Amstrong khi nó bằng tổngluwyx thừa k của từng chữ số. hãy in ra các số Amstrong trong đoạn [1....1000000]
    3.Phân tích số tự nhiên n thành tích các số ngto. ví dụ 90 = 2*3*3*5
    Đưa em qua thăng trầm...bao tháng năm.
    Quote Quote

  2. Thành viên Like bài viết này:


  3. #2
    Tham gia
    29-05-2011
    Location
    Hà Nội
    Bài viết
    1,826
    Like
    1,420
    Thanked 47 Times in 42 Posts
    LẠ thật, với kích cỡ các số lớn khủng bố thế này thì làm đệ quỵ sao được nhỉ ?
    đệ quỵ đã tốn bộ nhớ rồi, lại còn thêm giới hạn khủng nữa thì ...

  4. #3
    Tham gia
    09-08-2009
    Location
    localhost
    Bài viết
    21
    Like
    1
    Thanked 3 Times in 3 Posts
    Quote Được gửi bởi hotbig View Post
    Các bạn giúp mình 3 bài đệ quy này với, mình nghĩ hoài cũng ko ra, không hiểu lun! ( t.t đệ quy nha)

    1. Tìm tất cả các số lẻ có 4 chữ số bít rằng khi đảo trật tự của các chữ số thì ta thu được một số nguyên tôt cùng nhau với số đã cho?
    Về thăm nhà, đợi phone làm luôn
    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <iostream>
    
    bool is_ntcn(int a, int b)
    {
    	if (a < 2 || b < 2) return false;
    	if (a > b) return is_ntcn(b, a);
    	for (int i = 2; i <= a; i++)
    	{
    		if (a%i == 0 && b%i == 0) return false;
    	}
    	return true;
    }
    
    bool is_valid(int a, int b, int c, int d)
    {
    	if (!(a > 0 && a <= 9) ||
    		!(b >= 0 && b <= 9) ||
    		!(c >= 0 && c <= 9) ||
    		!(d >= 0 && d <= 9))
    		return false;
    	int s1 = 100*a + 100*b + 10*c + d;
    	int s2 = 100*d + 100*c + 10*b + a;
    	if (is_ntcn(s1, s2) == false) return false;
    
    	return true;
    }
    
    int main()
    {
    	for (int i1 = 1; i1 <= 9; i1++)
    	{
    		for (int i2 = 0; i2 <= 9; i2++)
    		{
    			for (int i3 = 0; i3 <= 9; i3++)
    			{
    				for (int i4 = 0; i4 <= 9; i4++)
    				{
    					if (is_valid(i1, i2, i3, i4))
    					{
    						printf("(%d, %d) = 1\n", 1000*i1 + 100*i2 + 10*i3 + i4, 1000*i4 + 100*i3 + 10*i2 + i1);
    					}
    				}
    			}
    		}
    		system("pause");
    	}
    	
    	return 0;
    }

  5. Thành viên Like bài viết này:


  6. #4
    Tham gia
    10-08-2011
    Bài viết
    183
    Like
    13
    Thanked 164 Times in 35 Posts
    Quote Được gửi bởi newalone View Post
    Về thăm nhà, đợi phone làm luôn
    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <iostream>
    
    bool is_ntcn(int a, int b)
    {
    	if (a < 2 || b < 2) return false;
    	if (a > b) return is_ntcn(b, a);
    	for (int i = 2; i <= a; i++)
    	{
    		if (a%i == 0 && b%i == 0) return false;
    	}
    	return true;
    }
    
    bool is_valid(int a, int b, int c, int d)
    {
    	if (!(a > 0 && a <= 9) ||
    		!(b >= 0 && b <= 9) ||
    		!(c >= 0 && c <= 9) ||
    		!(d >= 0 && d <= 9))
    		return false;
    	int s1 = 100*a + 100*b + 10*c + d;
    	int s2 = 100*d + 100*c + 10*b + a;
    	if (is_ntcn(s1, s2) == false) return false;
    
    	return true;
    }
    
    int main()
    {
    	for (int i1 = 1; i1 <= 9; i1++)
    	{
    		for (int i2 = 0; i2 <= 9; i2++)
    		{
    			for (int i3 = 0; i3 <= 9; i3++)
    			{
    				for (int i4 = 0; i4 <= 9; i4++)
    				{
    					if (is_valid(i1, i2, i3, i4))
    					{
    						printf("(%d, %d) = 1\n", 1000*i1 + 100*i2 + 10*i3 + i4, 1000*i4 + 100*i3 + 10*i2 + i1);
    					}
    				}
    			}
    		}
    		system("pause");
    	}
    	
    	return 0;
    }

    Cảm ơn bạn nhiều nhen! Chúc may mắn sẽ đếnvới bạn!
    Đưa em qua thăng trầm...bao tháng năm.

Bookmarks

Quy định

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