【leetcode】求解數的各種屬性

背景,案例

一、背景

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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章