例:输入数字x,计算x!
考虑使用静态变量static int f=1,该值只在编译的时候进行初始化,在后期函数执行的时候不进行变换,故可进行阶乘计算
#include<iostream> #include<stdio.h> #define MAX 1005; #define N 25 using namespace std; int fac(int n) { static int f=1;//静态变量f,只在编译的时候初始化f=1,之后循环执行的时候不再执行初始化,故可以迭代计算阶乘 f=f*n; return f; } int main() { int x; scanf("%d",&x); for(int i=1;i<=x;i++) { printf("%d!=%d ",i,fac(i)); } return 0; }