Số nguyên dương N được gọi là số may mắn nếu viết thêm 2 số a và b vào đầu và cuối của số N thì được số mới gấp 68 lần số N (Nghĩa là: Nh=68N). Yêu cầu: Cho 2 số a và b (1 <= a,b <=9), hãy lập

Số nguyên dương N được gọi là số may mắn nếu viết thêm 2 số a và b vào đầu và cuối của số N thì được số mới gấp 68 lần số N (Nghĩa là: Nh=68N). Yêu cầu: Cho 2 số a và b (1 <= a,b <=9), hãy lập trình tim số may mắn N (0 <N< 1010). Dữ liệu vào: 2 số a và b. Dữ liệu ra: Số may mắn N. code bằng cpp nhé
Câu trả lời này dùng AI, hãy kiểm tra lại trước khi sử dụng
```cpp
#include
#include

using namespace std;

int main() {
int a, b;
cin >> a >> b;

// Đối với các số a và b, chúng ta sẽ kiểm tra các giá trị của N từ 1 đến 10^10 (10 tỷ)
for (long long N = 1; N < 10000000000; N++) {
// Tính số mới Nh bằng cách thêm a và b vào đầu và cuối của N
// Cách tính số mới: Nh = a 10^(d + 1) + N 10 + b
// Trong đó d là số chữ số của N
long long d = log10(N) + 1; // Số chữ số của N
long long Nh = a pow(10, d + 1) + N 10 + b;

// Kiểm tra điều kiện Nh == 68 * N
if (Nh == 68 * N) {
cout << N << endl;
return 0; // Kết thúc chương trình khi tìm thấy N
}
}

// Nếu không tìm thấy số may mắn
cout << -1 << endl;
return 0;
}
```

Giải thích:
- Chương trình bắt đầu bằng việc đọc vào 2 số `a` và `b`.
- Sau đó, chúng ta thực hiện vòng lặp từ `N = 1` đến `N < 10^10` để tìm số may mắn.
- Để tính toán số mới `Nh`, ta thêm số `a` vào đầu và số `b` vào cuối của số `N`, điều này được thực hiện bằng cách sử dụng công thức: `Nh = a 10^(d + 1) + N 10 + b`, trong đó `d` là số chữ số của `N`.
- Cuối cùng, kiểm tra nếu `Nh` có bằng `68 * N` không, nếu có thì in ra `N` và dừng chương trình. Nếu không tìm thấy giá trị nào, in ra `-1`.

Cấu trúc chương trình đảm bảo tìm được số may mắn trong giới hạn đã cho, đồng thời xử lý tình huống khi không có số nào thỏa mãn.
Đăng phản hồi