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;
}