题目描述
自除数 是指可以被它包含的每一位数整除的数。
例如,128 是一个 自除数 ,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。
自除数 不允许包含 0 。
给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 [left, right] 内所有的 自除数 。
问题分析
按照题目描述进行解题即可。
代码
int* selfDividingNumbers(int left, int right, int* returnSize) {
int *num = (int *)malloc(sizeof(int)*(right-left+1));
int count = 0;
for(int i=left; i<=right; i++){
int x = i;
int b = i;
int flag = 1;
while(b!=0){
if(b%10!=0){
if(x%(b%10)!=0){
flag = 0;
break;
}
}else{
flag = 0;
break;
}
b/=10;
}
if(flag){
num[count] = i;
count++;
}
}
*returnSize = count;
return num;
}