Lớp 8
Lớp 1điểm
3 tháng trước
Đỗ Hồng Việt

giúp mình lập trình C++ với. Thank admin Bài 1: Số đối xứng là số lớn hơn 10 và khi viết từ cuối lên vẫn là số ban đầu ví dụ: 121, 222 là các số đối xứng. Viết chương trình đếm tất cả các số đối xứng trong đoạn [a,b] với 11≤a,b≤106 Bài 2: Cho dãy số nguyên dương A=(a1,a2,…,an). Viết chương trình thực hiện: 1. Số “Hoàn Hảo” là số có tổng các ước bằng chính nó (không kể ước là chính nó), ví dụ: 6=1+2+3, 28=1+2+4+7+14 là các số “Hoàn Hảo”. Đếm các số “Hoàn Hảo” trong dãy A đã cho. 2. In ra dãy con tăng liên tiếp dài nhất trong dãy A đã cho. Dãy con tăng liên tiếp là dãy: aL,a(L+1),…,a(H-1),aH thỏa mãn hai điều kiện: - Các phần tử trong dãy có thứ tự tăng dần: aL<a(L+1)<⋯<a(H-1)<aH - Số phần tử trong dãy là nhiều nhất có thể. Quy ước: Dãy con chỉ gồm đúng 1 phần tử trong dãy A cũng được coi là dãy có thứ tự tăng.
Mình cảm thấy hơi mắc kẹt và không chắc làm thế nào để tiếp tục làm câu hỏi này. Ai có thể giành chút thời gian để giúp mình với được không?

Hãy luôn nhớ cảm ơnvote 5 sao

nếu câu trả lời hữu ích nhé!

Các câu trả lời

Để giúp bạn lập trình C++ cho bài toán đếm số đối xứng và tìm dãy con tăng liên tiếp dài nhất, bạn có thể làm như sau:

1. Bài 1 - Đếm số đối xứng trong đoạn [a,b]:
- Viết một vòng lặp từ a đến b.
- Trong mỗi lượt lặp, kiểm tra xem số đó có phải số đối xứng không bằng cách so sánh từng chữ số tương ứng từ đầu và cuối của số.
- Nếu số đó là số đối xứng, tăng biến đếm lên.

2. Bài 2 - Đếm số "Hoàn Hảo" và tìm dãy con tăng liên tiếp dài nhất:
- Để đếm số "Hoàn Hảo", bạn cần viết một hàm kiểm tra số hoàn hảo (tổng các ước bằng chính nó).
- Để tìm dãy con tăng liên tiếp dài nhất, bạn cần viết một vòng lặp để duyệt qua từng phần tử trong dãy. Trong quá trình duyệt, cần kiểm tra xem phần tử hiện tại và phần tử sau có tạo thành dãy tăng không, nếu có thì tăng độ dài của dãy liên tiếp, nếu không thì reset về 1.

Câu trả lời cho câu hỏi Tin học Lớp 8 của bạn:

```cpp
#include
using namespace std;

bool isPalindrome(int n) {
string str = to_string(n);
int i = 0, j = str.length() - 1;
while (i < j) {
if (str[i] != str[j]) return false;
i++; j--;
}
return true;
}

bool isPerfect(int n) {
int sum = 0;
for (int i = 1; i <= n/2; i++) {
if (n % i == 0) sum += i;
}
return sum == n;
}

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

// Dem so doi xung
int countPalindrome = 0;
for (int i = a; i <= b; i++) {
if (i > 10 && isPalindrome(i)) {
countPalindrome++;
}
}
cout << "So doi xung trong doan [" << a << ", " << b << "]: " << countPalindrome << endl;

// Dem so hoan hao va tim day con tang lien tiep dai nhat
int n;
cin >> n;
int maxLength = 0, curLength = 1;
for (int i = 0; i < n; i++) {
int num;
cin >> num;

if(isPerfect(num)) {
cout << num << " la so hoan hao" << endl;
}

if (i > 0 && num > prev) {
curLength++;
} else {
maxLength = max(maxLength, curLength);
curLength = 1;
}
prev = num;
}
maxLength = max(maxLength, curLength);

cout << "Do dai day con tang lien tiep dai nhat: " << maxLength << endl;
return 0;
}
```

Đây là cách giải bằng C++ cho bài toán của bạn. Bạn có thể tùy chỉnh và cải thiện code theo yêu cầu cụ thể của đề bài. Chúc bạn thành công!

Hãy giúp mọi người biết câu trả lời này thế nào?
51 vote
Cảm ơn 5Trả lời.
Câu hỏi Tin học Lớp 8
Câu hỏi Lớp 8

Bạn muốn hỏi điều gì?

Đặt câu hỏix
  • ²
  • ³
  • ·
  • ×
  • ÷
  • ±
  • Δ
  • π
  • Ф
  • ω
  • ¬
0.44869 sec| 2234.773 kb