#include <iostream>
#include <stdlib.h>
using namespace std;
/*设计一个函数,传入整数,返回所有的因子
例如:传入30,返回【2,3,5,6,10,15】*/
//因子:所有可以整除这个数的数,不包括这个数本身
//因数:所有可以整除这个数的数,包括这个数本身
int* get_factor(int x)
{
//定义一个整型数,用于记录有多少个因子
int n=1;//由于返回的是指针类型,要判断什么时候结束,可以将最后一个数设置为-1
for(int i=1;i<x;i++)
{
if(x%i==0)//说明是因子
{
n++;
}
}
//动态的申请空间
int* data=(int*) malloc(n*sizeof(int));//int* data=new int [n]
//为数组进行赋值
int j=0;//用于记录数组的下标
for(int i=1;i<x;i++)
{
if(x%i==0)
{
data[j]=i;
j++;
}
}
//将最后一个设置为-1,用于结束标志
data[n]=-1;
return data;
}
int main()
{
int* a=get_factor(30);
//输出
for(int* p=a;*p>0;p++) cout<<*p<<" ";
cout<<endl;
free(a);//delete [] a;
return 0;
}
Snipaste_2024-03-10_11-18-08.png
老师,我想问一下输出的结果为什么有一个 17170624呢