【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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值