第十六周 oj平台 指针引出奇数因子

来源:互联网 发布:2016网络春晚 编辑:程序博客网 时间:2024/06/10 02:55

问题及代码:

/**Copyright (c) 2014,烟台大学计算机学院*All gight reserved.*文件名称:temp.cpp*作者:曾建强*完成时间:2014年12月16日*版本号:v1.0*问题描述:编写函数 int fun(int x, int *pp)。其功能是,求出x的所有奇数因子,并按照从小到大的顺序放在pp指向的内存中,函数返回值为这些整数的个数。若x的值为30,数组中的数为1,3,5,15,函数返回4。*输入描述:一个整数*输出描述:输入的整数的奇因子个数,以及这些奇因子*/#include<iostream>using namespace std;int fun(int,int *);int main(){    int a[50],x,n;    cin>>x;    n=fun(x,a);    cout<<n<<endl;    for(int i=0; i<n; i++)        cout<<a[i]<<" ";    cout<<endl;    return 0;}int fun(int x,int *p){    int i=3,num=1;    *p++=1;  // 1一定是奇因子,记录后,指针后移一单元    while(i<x)    {        if(x%i==0)        {            *p++=i;  //i是奇因子,记录后,指针后移一单元            ++num;   //个数增加1        }        i+=2;    }    return num;}
运行结果:


0 0