c语言递归实现100的阶乘
来源:互联网 发布:php 获取字符串后4位 编辑:程序博客网 时间:2024/05/17 03:04
程序如下:
#include "stdio.h" #include <time.h> void dgCal(int a[],int b,int i) { if(i>a[0]) { a[0]++; } int temp=a[i]+b; if(temp>=10) { a[i]=temp%10; dgCal(a,temp/10,i+1); } else { a[i]=temp; } } void calculator(int a[],int b[]) { int temp=0; int gw; int sw; for(int i=1;i<=b[0];i++) { temp=a[i]+b[i]; if(temp>=10) { a[i]=temp%10; dgCal(a,temp/10,i+1);//使用递归进位 } else { a[i]=temp; } } } void copyArray(int a[],int b[]) { for(int i=0;i<=a[0];i++) { b[i]=a[i]; } } void printa(int a[]) { printf("位数:%d\n",a[0]); for(int i=a[0];i>=1;i--) { printf("%d",a[i]); } printf("\n"); } void printb(int b[]) { printf("位数:%d\n",b[0]); for(int i=b[0];i>=1;i--) { printf("%d",b[i]); } printf("\n"); } int main(int argc, _TCHAR* argv[]) { int i,j; clock_t start, finish; double duration; int a[200]; int b[200];//辅助数组 for(i=0;i<200;i++) { a[i]=0; } a[0]=1; a[1]=2; //printa(a); copyArray(a,b); //printb(b); start = clock(); for(i=3;i<=100;i++)//从3开始 { copyArray(a,b); for(j=0;j<i-1;j++)//相加i-1次 { calculator(a,b); } } printf("100的阶乘:\n"); printa(a); printf("99的阶乘:\n"); printb(b); finish = clock(); duration = (double)(finish - start) / CLOCKS_PER_SEC; printf( "\n Use Time: %f seconds\n", duration ); return 0; }
结果如下:
0 0
- c语言递归实现100的阶乘
- C语言 阶乘递归
- c语言递归求n的阶乘
- C语言 - n的阶乘 递归
- C语言程序-递归和非递归分别实现求n的阶乘
- C语言递归求阶乘
- c语言用递归的方法实现1!+2!+3!+4!+.....+n!=?阶乘之和
- 大数运算之100的阶乘(C语言实现)
- 大数的阶乘(C语言实现)
- c语言实现n的阶乘
- iOS中C语言的递归求阶乘
- c语言:用递归方法求n的阶乘
- 用递归方法求n的阶乘(C语言)
- C语言使用递归求N的阶乘
- C语言使用递归法计算n的阶乘
- C语言经典算法100例-026-递归求阶乘
- 汉诺塔递归的c语言实现(递归)
- 递归实现1到100的和、10的阶乘(Java语言)
- MySQL 5.7.13主从同步(复制)配置
- IOS字体库查看并获取字体名称
- selenium python环境搭建
- 全面认识.NET框架(一)
- c++ placement new操作符的使用技巧
- c语言递归实现100的阶乘
- 终于研究出如何设置新版paypal付款时汇率损失方的问题了
- Servlet技术(二)
- 搭建ipv6环境
- 在shell脚本中获取上个月最后一天的日期
- 每天一个linux命令(8):cp 命令
- linux安装mysql5.7版本
- React createClass 和 Component 有什么区别
- Template Template Parameters(双重模板参数)