背景,案例
一、背景
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);