#include<stdio.h>
#include<math.h>
#include<time.h>
int main()
{
//例题2.4 阶乘之和 输入n 计算S=1!+2!+3!+…+n!的末6位
int n,S=0,j,i,jie;
scanf("%d",&n);
for(i=1;i<=n ;i++)
{
jie=1;
for(j=1;j<=i;j++)
{
jie=jie*j;
}
S+=jie;
}
printf("%d\n",S%1000000);
printf("Time used = %.2f\n", (double)clock() / CLOCKS_PER_SEC);
/*
//例题2.3 近似计算
double sum = 0;
for(int i = 0; ; i++)
{
double term = 1.0 / (i*2+1);
if(i % 2 == 0)
sum += term;
else
sum -= term;
if(term < 1e-6)
break;
}
printf("%.6f\n", sum);
/*
//例题2.2 3n+1问题
int n,count=0;
scanf("%d",&n);
while(n>1)
{
if(n%2!=0)
{
n=3*n+1;
}else
n/=2;
count++;
}
printf("%d\n",count);
/*
//例题2.1 7744问题:输出所有形如aabb的四位完全平方数
//输出所有可能的aabb,然后判断它们是否是完全平方数
//a的范围是1-9,b的范围可以是0
int a,b,m,n;
for(a=1;a<10;a++)
{
for(b=0;b<10;b++)
{
n=a*1100+b*11;
m=floor(sqrt(n)); //floor返回参数不大于a的最大整数 sqrt平方根
if(m*m==n) //完全平方数的判断 开平方函数
{
printf("%d\n",n);
}
}
}*/
return 0;
}
#include<math.h>
#include<time.h>
int main()
{
//例题2.4 阶乘之和 输入n 计算S=1!+2!+3!+…+n!的末6位
int n,S=0,j,i,jie;
scanf("%d",&n);
for(i=1;i<=n ;i++)
{
jie=1;
for(j=1;j<=i;j++)
{
jie=jie*j;
}
S+=jie;
}
printf("%d\n",S%1000000);
printf("Time used = %.2f\n", (double)clock() / CLOCKS_PER_SEC);
/*
//例题2.3 近似计算
double sum = 0;
for(int i = 0; ; i++)
{
double term = 1.0 / (i*2+1);
if(i % 2 == 0)
sum += term;
else
sum -= term;
if(term < 1e-6)
break;
}
printf("%.6f\n", sum);
/*
//例题2.2 3n+1问题
int n,count=0;
scanf("%d",&n);
while(n>1)
{
if(n%2!=0)
{
n=3*n+1;
}else
n/=2;
count++;
}
printf("%d\n",count);
/*
//例题2.1 7744问题:输出所有形如aabb的四位完全平方数
//输出所有可能的aabb,然后判断它们是否是完全平方数
//a的范围是1-9,b的范围可以是0
int a,b,m,n;
for(a=1;a<10;a++)
{
for(b=0;b<10;b++)
{
n=a*1100+b*11;
m=floor(sqrt(n)); //floor返回参数不大于a的最大整数 sqrt平方根
if(m*m==n) //完全平方数的判断 开平方函数
{
printf("%d\n",n);
}
}
}*/
return 0;
}