蓝桥杯猴子吃包子
思路1:将其分为整数和小数进行输出,小数转化为一位的整数,一次一次进行输出。 错误:本题是要求输出n位小数,而使用%f来保存我们计算的结果只能是6位
#include<stdio.h>
int main(){
int x
,y
,z
;
float x1
,y1
,z1
;
scanf("%f %f %f %d %d %d",&x1
,&y1
,&z1
,&x
,&y
,&z
);
int n
;
scanf("%d",&n
);
float ans
=(x
*y1
*z1
+y
*z1
*x1
+z
*x1
*y1
)/(x1
*y1
*z1
);
int ans1
=ans
;
printf("%d.",ans1
);
ans
-=ans1
;
while(n
){
ans
*=10;
ans1
=ans
;
ans
-=ans1
;
if(n
==1){
int flag
=(int)(ans
*10);
if(flag
>5)
ans1
++;
}
n
--;
printf("%d",ans1
);
}
}
-
思路2:正确思路网址!!! 整数才能进行取余,必须输入整数。 写算法时先写出思路,一些关键的变量对应的含义也应写在演草纸上,避免出错。
X
=X
*10;
s
=X
/(x
*y
*z
);
X
=X
%(x
*y
*z
);