签到

06月21日
尚未签到

共有回帖数 0

    做月子

    等级:
    本程序在windowsXP操作系统,VC++6.0编译环境下测试通过
    为了规范,改程序划分为3个文件,请见注解。用过VC++6.0的朋友懂的。
    //******name file:Huge.h*******
    #define MAXSIZE 100000
    typedef struct
    {
    int data[MAXSIZE];
    int *begin,*end;
    }Huge;
    //******name file:algo.cpp*****
    #includestdio.h
    #includemalloc.h
    #include"Huge.h"
    Huge *multiply(Huge *multiplicand,int multiplier)
    {
    int product,unit,carry=0;
    int *p=multiplicand-begin;
    while(p!=multiplicand-end+1)
    {
    product=carry+(*p)*multiplier;
    unit=product%10;
    carry=product/10;
    *p=unit;
    p++;
    }
    while(carry!=0)
    {
    unit=carry%10;
    carry=carry/10;
    *p=unit;
    p++;
    }
    multiplicand-end=p-1;
    return multiplicand;
    }
    void show(Huge *h)
    {
    int *p=h-end;
    while(p!=h-begin-1)
    {
    printf("%d",*p);
    p--;
    }
    printf("n");
    }
    Huge *factorial(int num)
    {
    Huge *e=(Huge *)malloc(sizeof(Huge));
    int i=1;
    e-data[0]=1;
    e-begin=e-data;
    e-end=e-data;
    while(i=num)
    {
    e=multiply(e,i);
    i++;
    }
    return e;
    }
    //******name file:Test.cpp********
    #includestdio.h
    #includemalloc.h
    #include"Huge.h"
    extern void show(Huge *h);
    extern Huge *factorial(int num);
    void main()
    {
    int num;
    printf("Input the number:");
    scanf("%d",&num);
    show(factorial(num));
    }
    计算1000阶乘的dos界面:


    楼主 2015-12-10 13:03 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知