#include <iostream>
#include <cstdio>
using namespace std;
int tmp, sum , i , j , n ;
int main()
{
scanf("%d" , &n);
for ( i = 1 ; i <= n ; i++ )
{
tmp = 1;
for ( j = 1 ; j <= i ; j++ )
tmp *= j;
sum += tmp;
}
printf("%d" , sum);
return 0;
}
单个for循环写法
#include <iostream>
#include <cstdio>
using namespace std;
int tmp , sum , i , j , n ;
int main()
{
scanf("%d" , &n);
for ( i = 1 ; i <= n ; i++ )
{
tmp *= i;
sum += tmp;
}
printf("%d" , sum);
return 0;
}
for循环调用递归写法
#include <iostream>
#include <cstdio>
using namespace std;
int tmp , sum , i , j , n ;
int fac (int n)
{
if ( n == 1 )
return 1;
else
return n * fac(n - 1);
}
int main()
{
scanf("%d" , &n);
for ( i = 1 ; i <= n ; i++ )
{
sum += fac(i);
}
printf("%d" , sum);
return 0;
}
递归调用递归写法
#include <iostream>
#include <cstdio>
using namespace std;
int sum , i , j , n ;
int fac (int n)
{
if ( n == 1 )
return 1;
else
return n * fac(n - 1);
}
int tmp ( int f )
{
if ( f == 1 )
return 1;
else
return tmp( f - 1 ) + f * fac(f - 1);
}
int main()
{
scanf("%d" , &n);
printf("%d" , temp(n));
return 0;
}