队友卡了很久,然后说是傻逼题,胡乱交了一发就过了
代码:
#include<cstdio>
#include<cstring>
double x,y;
int t;
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%lf%lf",&x,&y);
double left;
if(y==0.01)
{
left=0.03;
if(left>x)
left=x-0.01;
}
else if(y==0.1)
{
left=0.39;
if(left>x)
left=x-0.01;
}
else if(y==1)
{
left=3.99;
if(left>x)
left=x-0.01;
}
else if(y==10)
{
left=39.99;
if(left>x)
left=x-0.01;
}
else
{
left=x-0.01;
}
double ans=x-left;
char s[10];
sprintf(s,"%.2f",ans);
int len=strlen(s);
for(int i=len-1;i>=0;i--)
{
if(s[i]!=0)
{
s[i+1]='\0';
printf("%s\n",s);
break;
}
else if(s[i]==0&&s[i-1]=='.')
{
s[i-1]='\0';
printf("%s\n",s);
break;
}
}
}
return 0;
}

本文介绍了一个涉及特殊条件下浮点数计算的编程问题,并提供了一份使用C++实现的具体解决方案。该方案通过一系列if-else判断来确定不同输入下的计算逻辑,最后输出保留两位小数的结果。
562

被折叠的 条评论
为什么被折叠?



