#include<stdio.h>
#include<cstdlib> //rand和srand函数头文件,#include<stdlib.h>
#include<time.h> //时间函数头文件
using namespace std;
int func(int m) //设立阶乘函数
{
int i, factorial = 1;
for (i = 1; i <= m; i++)
factorial *= i;
return factorial; //将数据factorial传回
}
void doRandomDigitFactorialAnd() //译为随机数阶乘和函数
{
int i, m, a[100],s=0; //100为最大可接数字数量
printf_s("请输入你想生成阶乘数的个数:\n"); //可控化生成阶乘和个数数量
scanf_s("%d", &m);
printf_s("生成成功!\n");
srand((unsigned)time(NULL)); //利用时间函数time()种子产生随机性,因为每次运行时间是不一样的
for (i = 0; i < m; i++) //设置循环生成随机数并利用函数func()计算阶乘,并求和
{
a[i] = (rand() % 10 + 1);
s += func(a[i]);
}
for (i = 0; i < m; i++) //按要求输出,eg:1!+2!+3!=9
{
printf_s("%d!+", a[i]);
}
printf_s("\b=%d",s); //\b退格然后再加等号可以删除最后一个加号
}
int main()
{
doRandomDigitFactorialAnd();
return 0;
}
运行一下,结果如下:(分别运行个数为3和5的)