进位数

贝壳找房每个月都会计算各个城市房价的均价,计算的最后一步为:

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

计算完成后会将这个均价展示在首页供用户参考。

特殊近似法定义为:从最右边开始四舍五入到整数为止。

比如 4.445->4.45->4.55 。

输入格式

第一行一个整数 T,表示数据组数。

每组数据中,第一行一个形如 X.Y的小数。

保证0X1018,1Y1000,T10000

输出格式

T行,每行一个整数,表示需要展示的均价。

样例输入

2
4.445
3.005

样例输出

5
3

#include<iostream>
#include<cstdio>
#include<cstring> 
/*
由于小数位最多就+1然后向前补位,所以如果最左边的是<4的数就不可能变成了5从而使整数部分进位,
如果是4的话(要自身+1)就要保证后面的出现了>4的数,所以continue;
如果先遍历到的是>4的数就直接整数进位;
如1.23456789->1.2346->1.235->1.234 ->1 
234567部分进行从左到右的遍历,如果出现了<4的数就退出,add=0;
如果有遇到==4的继续,如果后面还有>4的则左边的4就会变成5,add=1; 
*/ 
using namespace std;
int main()
{
	unsigned long long x;
	char a[1050];
	int len,add,i,count;
	cin>>count;
	while(count--)
	{
		add=0;
		scanf("%llu.%s",&x,a);	
		len=strlen(a);
		for(i=0;i<len;i++)
		{
			if(a[i]<'4')
				break;
			else if(a[i]=='4')
				continue;
			else 
			{
				add=1;break;
			}
		}
		printf("%llu\n",x+add);
	}	
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/dyd850804/article/details/80910975
今日推荐