Cách kiểm tra số may mắn?

số may mắn được định nghĩa là số chỉ gồm cấc chứ số may mắn là 6, 9. ví dụ 6 , 9, 96, 9999, là cacs số may mắn còn 609, 978, thì không. nhập 1 số tự nhiên n(n <= 10^18) và kiểm tra xem nó có là số may mắn không?

Số này là san bằng tất cả mà, hình như cũng may mắn đó @Ng_c_Anh :trollface:

k anh, chỉ gồm chữ số 6 or 9 or gồm cả 2 chữ số 6 và 9 :smile:

1 Like

Ok, để anh hướng dẫn cho em làm nhé, anh sẽ không code, mà hướng dẫn cách làm.

  • Em biết cách nhập chuỗi không?
  • Sau khi nhập “chuỗi” có giá trị ví dụ 99969 vào
  • Em biết cách duyệt từng phần tử không?
  • em duyệt từng phần từ và kiểm tra xem nó khác 6 và 9, ngay lập tức thông bao đây không phải là số may mắn
  • nếu duyệt hết chuỗi mà vẫn không tìm thấy số nào khác 6 và 9
  • đây là số máy mắn
1 Like

a dạy luôn từng phần ns trên đi ạ? :smile:

em không nhập chuỗi được, vậy em nhập số được không?

Em chờ anh chút, trong thời gian đó đọc bài này:

nhập số thì duyệt hay kiểm tra sao a?

#include <iostream>
using namespace std;
#define Max 100 // khai báo phần tử ggiới hạn cho mảng tĩnh ( tối đa 100 )
void nhapMang(int [], int );// khai báo funtion prototype
void xuatMang(int [], int );
bool duyetMang(int[], int, int);
void nhapMang(int mangBatky[], int n)
{
	for (int i = 0; i < n; i++)
	{
		cout << "moi ban nhap noi dung cua mang" << endl;
		cin >> mangBatky[i];
	}
}
void xuatMang(int mangBatKy[], int n)
{
	int *mang = mangBatKy;
	cout << *mang;
	for (int i = 0; i < n; i++)
	{
		cout << mangBatKy[i] << endl;
	}
}
bool duyetMang(int mangbatky[], int n,int x) // hàm check kiểm tra 1 phần tử x bất kỳ có trong mảng
{
	for (int i = 0; i < n; i++)
	{
		if (x == mangbatky[i])
		{
			return true;
		}
	}
	return false;
}
int main(int argc, char**argv)
{
	int mangBatKy[Max];
	int n;
	cout << "Nhap so phan tu n : " << endl;
	cin >> n;
	do
	{
		if (0 > n || n > Max)
		{
			cout << "Ban da nhap sai so phan tu n";
		}
	} while (n<0 || n > Max);
	nhapMang(mangBatKy, n);
	xuatMang(mangBatKy, n);
	int x;
	cout << "Nhap bien x can tim kiem" << endl;
	cin >> x;
	bool check = duyetMang(mangBatKy, n,x);
	if (check == true)
	{
		cout << "Gia tri x = " << x << " thuoc mang\n";
	}
	else
	{
		cout << "Gia tri x = " << x << " khong thuoc mang\n";
	}
	system("pause");
	return 0;
}

@ltd a Đạt sao nick mộng mít của e bị khoá reply rồi a ?

1 Like

bạn còn đó ko? câu của bạn mình phân tích giùm này :smile:
nhập 1 mảng gồm n phần tử ( mảng tĩnh or động ở đây xài mảng tĩnh )
kiểm tra mảng nếu có phần tử nào là 6, 9 , 96,… nếu đúng thì gán vào true ( tạo 1 hàm bool kiểm tra )
xuất mảng : nếu là true thì xuất ra !
code trên chi tiết bạn có thể tham khảo

1 Like

bạn code theo ngôn ngữ C đây ak? @@

1 Like

c++! bạn chỉ cần đổi cout thành printf và cin thành scanf ! khai báo lại thư viện cho nó là ok! nhưng ở c ko có biến kiểu bool! nếu bạn code trong visual studio thì ok! ngôn ngữ khác thì bạn đặt điều kiện vs if hoặc tạo thêm #define true 1 và #define false 2 chẳng hạn

1 Like

Trong C# người ta có hỗ trợ một hàm là ToString đó bạn. Nhập số vào rùi cho một biến String bằng SốN.ToString(); là mình sẽ được một string và kiểm tra nó. Chớ mình thấy đề yêu cầu nhập số mà mình nhập chuỗi thì hơi kì :slight_smile:

1 Like

Còn được này :smile:

mình chỉ đang bắt đầu học về C không thôi

1 Like

Đấy là C++ @Ng_c_Anh à.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?