buzhao.cpp

来自「能求出超过20的阶乘」· C++ 代码 · 共 72 行

CPP
72
字号
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<fstream.h>
void jiecheng(int a[],int m)
{
 int i=0;
 int j=0;
 int carry=0;
 int n=a[0];
 int t=n;
 int *b=(int *)malloc((n+1)*sizeof(int));
 if(b==NULL){printf("over\n");exit(0);}
 for(i=0;i<=n;i++)b[i]=a[i];
 for(j=1;j<m;j++)
 {
   for(carry=0,i=1;i<=n;i++)
	{
	   if(i<=a[0])a[i]=a[i]+b[i]+carry;
	   else a[i]=a[i]+carry;
		carry=a[i]/10;
		a[i]=a[i]%10;
	}
   if(carry)
	{
	   a[++n]=carry;
	}
 }
free(b);
a[0]=n;
}
void print_result(int a[],int m)
{
 int i;
 ofstream fp("wuzhao.txt",ios::out);
 for(i=m;i>0;i--)
 {
	printf("%d",a[i]);
	fp<<a[i];
 }
 fp.close();
}
void main()
{
  int a[200];
  int var;
  int flag=0;
  a[0]=1;
  a[1]=1;
  printf("Please input var=");
  scanf("%d",&var);
  if(var==0)
  {
	a[0]=1;
	a[1]=0;
  }
  else if(var==1)
  {
	a[0]=1;
	a[1]=1;
  }
  else
  {
	 for(flag=2;flag<=var;flag++)
	 {
		jiecheng(a,flag);
	 }
  }
  print_result(a,a[0]);
  printf("\n");
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?