特殊近似法

将一个形如 X.YX.Y 的小数,用特殊近似法近似到整数。

特殊近似法定义为:从最右边开始四舍五入到整数为止。 比如 4.445⇒4.45⇒4.5⇒5 。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
    int n;
    long long k;
    char str[1050];
    cin>>n;
    while(n--)
    {
        scanf("%s",str);
        int len1=strlen(str);
        k=0;
        int j=0;
        for(int i=0;i<len1;i++){
            if(str[i]=='.'){j=i;break;}
            k=k*10+str[i]-'0';
        }
        int y=str[++j]-'0';
        while(j<len1){
            if(y>4){break;}
            if(y<4){break;}
            if(y==4){
                y=str[j++]-'0';
            }
        }
        if(y>4)cout<<k+1<<endl;
        else cout<<k<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40788630/article/details/80383761