POJ 3077 Rounders

题意,如果数字大于10,则向最近的十位数四舍五入,
若结果大于100,接向最近的百位四舍五入。。。

号称应该是用递归做的,但是题目水了,所以用水方法就可以做出来了。

注意对问题的分析。

题目地址:

http://acm.pku.edu.cn/JudgeOnline/problem?id=3077

Memory: 144K Time: 16MS
Language: C++ Result: Accepted

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 #include <iostream>
using namespace std;
 
int n,  cnt;   // n记录要输入几个数, cnt记录要输出几个0
int x;  //x表示输入的数
int temp;  //temp用来存储最后一位数字
 
int main()
{
	scanf("%d", &n);
	while(n--)
	{
		cnt = 0;
		scanf("%d", &x);
		while(x >= 10)
		{
			temp = x % 10;
			x /= 10;
			cnt ++;
			if(temp >= 5)
				x++;
		}
		printf("%d", x);
		for(int i = 0; i < cnt; i++)
			printf("0");
		printf("\n");
	}
	return 0;
}

发布者

Tanky Woo

Tanky Woo,[个人主页:https://tankywoo.com] / [新博客:https://blog.tankywoo.com]

发表评论

电子邮件地址不会被公开。 必填项已用*标注