| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 469 人关注过本帖
标题:求助!谢谢高人指点。。。。。。
取消只看楼主 加入收藏
寒夜秋风3
Rank: 2
等 级:论坛游民
帖 子:25
专家分:22
注 册:2010-3-24
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
求助!谢谢高人指点。。。。。。
/*求助,我想用这个小程序求300以内的阶乘。值是可以算出来的,但是前面不知道怎么去掉多余了很多的“000000”谢谢高人指点,本人初学C,谢谢各位啦*/


#include <stdio.h>
#include <math.h>
void main()
{
    int a[256],b,d;
    long m;
    int n,i,j,r;
    printf("value of n:\n");
    scanf("%d",&n);
    m=(long)log(n)*n/6+2;
    a[1]=1;
    for(i=2;i<m;i++)
        a[i]=0;
    d=0;
    for(i=2;i<=n;i++)
    {
     for(j=1;j<m;j++)
        {
            b=a[j]*i+d;
            a[j]=b%1000000;
            d=b/1000000;
        }  
        if(d>0)
            a[j]=d;
    }

    i=m;
    r=1;
    do
    {i--;
    r++;
    }while(a[i]==0);


    printf("%d!=",n);
    for(i=r-15;i>=1;i--)
    {
        if(a[i]>99999)
        {
            printf("%d  ",a[i]);
            continue;}

    else if(a[i]>9999)
    {printf("0%d  ",a[i]);
    continue;
    }
   
    else if(a[i]>999)
    {printf("00%d  ",a[i]);
    continue;}

    else if(a[i]>99)
    {printf("000%d  ",a[i]);
    continue;}

    else if(a[i]>9)
    {printf("0000%d  ",a[i]);
    continue;}

    else
        printf("000000%d  ",a[i]);

    }
}
搜索更多相关主题的帖子: 高人 
2010-03-25 10:54
寒夜秋风3
Rank: 2
等 级:论坛游民
帖 子:25
专家分:22
注 册:2010-3-24
收藏
得分:0 
回复 2楼 ldg628
谢谢你!
真的是差距呀!佩服。。。。不过本人资质劣拙,还请帮忙指点一下哪儿错了。。。不胜感激。。。
2010-03-25 17:27
寒夜秋风3
Rank: 2
等 级:论坛游民
帖 子:25
专家分:22
注 册:2010-3-24
收藏
得分:0 
回复 4楼 ldg628
很感谢您!我是那个do  while 语句想偏了。。。谢谢提醒,还有我感觉我的基础好差哦。刚才你这么“%06d”一说,我才恍然大悟。。。太感谢了
2010-03-25 22:54
快速回复:求助!谢谢高人指点。。。。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022428 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved