蓝桥杯猴子吃包子

    科技2022-07-14  113

    蓝桥杯猴子吃包子

    思路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);

    Processed: 0.015, SQL: 8