| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 506 人关注过本帖
标题:新人的小问题~~
只看楼主 加入收藏
mingong1210
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-10
收藏
 问题点数:0 回复次数:3 
新人的小问题~~
编写一个程序,求100以内的数的阶乘。结果数要求用链表或数组来存储输出运算的结果,为便于观察结果,每输出四位中间插入空格,格式如下(例如,n=12):  
12!= 4790 0160 0  
万分感谢~~~~
搜索更多相关主题的帖子: 新人 
2008-11-10 09:10
nhuzwj
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-11-5
收藏
得分:0 
/*编写一个程序,求100以内的数的阶乘。结果数要求用链表或数组来存储输出运算的结果,为便于观察结果,每输出四位中间插入空格,格式如下(例如,n=12):  
12!= 4790 0160 0  */
#include "stdio.h"
main()
{int a[200]={0};
 int b[200]={0};
 int c[200]={0};
 int i,j,k,x;
 printf("\ninput number:");
 scanf("%d",&x);
 if(x>=100) printf("the mumber tu large!");
 else
 {a[199]=x%10;
  a[198]=x/10;
  for(i=x-1;i>0;i--)
    {for(j=199;j>0;j--)
       {b[j]=a[j]*(i%10);
    c[j-1]=a[j]*(i/10);
       }

     for(j=199;j>0;j--)
       {a[j]=b[j]+c[j];
    b[j]=0;c[j]=0;
       }
     for(j=199;j>0;j--)
       if(a[j]>9)
     {a[j-1]=a[j-1]+a[j]/10;
      a[j]=a[j]%10;
     }
     }
 }
 for(i=0,j=0,k=0;i<200;i++)
   if(a[i]!=0||j!=0)
     {printf("%d",a[i]);
      j=1;
      k++;
      if(k%4==0)
      printf(" ");
     }
}
2008-11-10 18:49
nhuzwj
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-11-5
收藏
得分:0 
补充说明一下,我也是初学C语言的,虽然你的要求我已经实现了,不过我的程序中空循环次数比较多,应该可以去掉一些空循环以提高效率,但我不太会。
2008-11-10 18:52
mingong1210
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-10
收藏
得分:0 
谢谢你。。。。但我想用链表做,不知道怎么办
2008-11-12 08:56
快速回复:新人的小问题~~
数据加载中...
 
   



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

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