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é
This anwser using AI, please
```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.
Ответить