1.输入一个实数x,计算并输出下式的和,直到最后一项的绝对值小于0.00001,计算并保留4位小数。要求定义和调用函数fact(n)计算n的阶乘,可以调用pow函数求幂。
输入一个实数x和计算阶乘的fact(n)函数
double fact(int n){
double pro=1;
int i;
for(i=1;i<=n;i++){
pro*=i;
}
return pro;
}
int main(){
double x;
scanf("%lf",&x);
return 0;
}
调用fact(n)函数和pow函数求出和
double fact(int n){
double pro=1;
int i;
for(i=1;i<=n;i++){
pro*=i;
}
return pro;
}
int main(){
double x;
double sum=0;
double eps=0.00001;
double t=1;
scanf("%lf",&x);
int n=1;
while(fabs(t)>eps){
sum+=t;
t=pow(x,n)/fact(n);
n++;
}
sum+=t;
printf("%.4lf",sum);
return 0;
}
2.输出水仙花数。输入一个正整数n(3<=n<=7),输出所有的n位水仙花数。
输入一个正整数并算出n位数的初始值
int main(){
int n;
scanf("%d",&n);
//求初始值
int in_value=1;
int i=1;
while(i<n){
in_value=in_value*10;
i++;
}
return 0;
}
再来算n位数的各个数,求出水仙花数
int main(){
int n;
scanf("%d",&n);
//求初始值
int in_value=1;
int i=1;
while(i<n){
in_value=in_value*10;
i++;
}
int j=1;
//
printf("%d\n",in_value);
for(j=in_value;j<in_value*10;j++){
int sum=0;
int t=j;
do{
int d=t%10;
t=t/10;
int p=d;
int j=1;
while(j<n){
p=p*d;
j++;
}
sum+=p;
}while(t>0);
if(sum==j){
printf("%d\n",j);
}
}
return 0;
}