e có đề bài là in ra các số chia hết cho các chữ số của chính nó băt đầu từ left->right.
nhưng bị lỗi, e có test thử ở trong hàm thì nó chỉ lưu đến phần tử thứ hai VD: từ 22->33 thì chỉ được 22 và 24 thôi.
#include <iostream>
using namespace std;
bool checkR(int a,int i)
{
while (a>0)
{
int t = a % 10;
if(i % t != 0 || t == 0)
{
return false;
}
a = a/10;
}
return true;
}
int* selfDividingNumbers(int left, int right, int* returnSize)
{
int *arrNum=new int [10000];
int j=0;
for (int i=left; i<= right; i++)
{
int a=i;
bool check= checkR(a,i);
if ( check == true)
{
cout << i<< endl;
arrNum[j]=i;
j++;
}
}
*returnSize=j;
return arrNum;
}
int main()
{
int left,right;
cin >> left >> right;
int *aa;v// trả về số các số thỏa mãn
int * aaa=selfDividingNumbers(left, right, aa);
for (int i=0; i< *aa; i++)
cout << aaa[i] << " ";
}```