A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Sniper_YJ 中级黑马   /  2014-5-16 00:32  /  2024 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学java的应该都知道java中可以直接调用一个类进行大数据运算,但是可悲的是c却不能直接调用什么函数,必须完全自己写,唉,,,
下面这段代码就是自己写的一个阶乘和的大数据运算,其实知道大数据的乘法之后对于大数据的除法加减法都可以用同样的思路来解决,异曲同工之妙啦。
题目是求n!+(n-1)!+......2!+1!很明显当n稍微大的时候int类型或者long long类型都没有足够大的长度来储存结果,因此我们只能通过数组来储存
下面附自己的代码
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. int main()
  5. {
  6.     int i,k=1;
  7.     int a[100];
  8.     memset(a,0,sizeof(a));
  9.     a[0]=1;
  10.     scanf("%d",&i);
  11.     for(int b=1;b<=i;b++)
  12.     {
  13.         int y=0;
  14.         int x=0;
  15.         for(int j=0;j<100;j++)
  16.         {
  17.             x=a[j]*b+y;
  18.             a[j]=x%10;
  19.             y=x/10;
  20.         }
  21.     }
  22.     int d;
  23.     for(int z=99;z>=0;z--)
  24.     {
  25.         
  26.         if(a[z]!=0)
  27.         {
  28.             d=z;
  29.             break;
  30.         }
  31.     }   
  32.     for(int m=d;m>=0;m--)
  33.     {
  34.         printf("%d",a[m]);
  35.     }        
  36.     system("pause");
  37.     return 0;
  38. }
复制代码
不过还是没有注释,所以有不懂的同学可以留言


10 个回复

正序浏览
多谢分享
回复 使用道具 举报
libra 中级黑马 2014-6-24 18:36:21
10#
好难呐,看不懂
回复 使用道具 举报
好多代码、、、不过模糊着能看懂点
回复 使用道具 举报
大...数据
回复 使用道具 举报
mei sha yong ...
回复 使用道具 举报
第三个头文件是干什么用的?
回复 使用道具 举报
此大数据非彼大数据。。。
回复 使用道具 举报
你是不是对大数据也很有兴趣啊
回复 使用道具 举报
这是关于c语言的一个算法啦
回复 使用道具 举报
不懂,学IOS和大数据也有关系吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马