背景,案例
一、背景
1 在做题的过程中,存在各种场景的题目,其中的子步骤是求解某一个数的相关特性,如因数等;
2 因此考虑将这些场景进行汇总,形成模块化可插拔的知识点;
二、案例
因数之和,是否为回文字符串判断,
2.1 某个数的因数
不包括1和自己本身
踏石板
int* getFactor(int n)
{
int i, k;
int *list = (int *)malloc(n * sizeof(n));
for (i = 2; i < Math.sqrt(n); i++) {
if (n % i == 0) {
list[k++] = i;
if (n / i != i) {
list[k++] = n / i;
}
}
}
return list;
}
2.2 整型数字的长度
两种求法:一种是利用while循环进行求解,另一种是利用sprintf函数转换为字符串
int getNum(int num)
{
int n = 0;
while (num != 0) {
num = num / 10;
n++;
}
return n;
}
//注意下列函数的起始位置是从1开始;如果需要从零开始,则使用while(n--)
void getString(int num, int n, int *pointer)
{
while (n) {
pointer[n] = num % 10;
num = num / 10;
n--;
}
return;
}
char *pointer = (char *)malloc(CHAR_ARRAY_SIZE * sizeof(char));
sprintf(pointer, "%d", num);
int n = strlen(pointer);