#include <stdio.h> #include <stdlib.h> //创建数组,赋值为0 int av(int n) { int long a[300],d,b; int i,k,j,m; a[1]=1; m=100; for(i=2;i<=m;i++)//初始化数组 a[i]=0; d=0;//d是进位后的所相加的数 for(i=2;i<=n;i+=2) { for(j=1;j<=m;j++) { b=a[j]*i+d; a[j]=b%1000000; d=b/1000000; } } for(i=m;a[i]==0;i–); printf("%ld的偶数积",n); printf("%ld",a[i]); //return a[i]; for(j=i-1;j>=1;j–) { if(a[j]>99999) {printf("%ld",a[j]);continue;} if(a[j]>9999) {printf(“0%ld”,a[j]);continue;} if(a[j]>999) {printf(“00%ld”,a[j]);continue;} if(a[j]>99) {printf(“000%ld”,a[j]);continue;} if(a[j]>9) {printf(“0000%ld”,a[j]);continue;} if(a[j]>=0) {printf(“00000%ld”,a[j]);continue;} } printf("\n"); return 0; } int ab(int n) { int long a[300],d,b; int i,k,j,m; a[1]=1; m=100; for(i=2;i<=m;i++)//初始化数组 a[i]=0; d=0;//d是进位后的所相加的数 for(i=3;i<=n;i+=2) { for(j=1;j<=m;j++) { b=a[j]*i+d; a[j]=b%1000000; d=b/1000000; } } for(i=m;a[i]==0;i–); printf("%ld的积数积",n); printf("%ld",a[i]); for(j=i-1;j>=1;j–) { if(a[j]>99999) {printf("%ld",a[j]);continue;} if(a[j]>9999) {printf(“0%ld”,a[j]);continue;} if(a[j]>999) {printf(“00%ld”,a[j]);continue;} if(a[j]>99) {printf(“000%ld”,a[j]);continue;} if(a[j]>9) {printf(“0000%ld”,a[j]);continue;} if(a[j]>=0) {printf(“00000%ld”,a[j]);continue;} } printf("\n"); return 0; } int main() { int n; int long m; scanf("%d",&n); av(n); ab(n); return 0; }