这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。
题意,如果数字大于10,则向最近的十位数四舍五入, 若结果大于100,接向最近的百位四舍五入。。。
号称应该是用递归做的,但是题目水了,所以用水方法就可以做出来了。
注意对问题的分析。
题目地址:
http://acm.pku.edu.cn/JudgeOnline/problem?id=3077
Memory: 144K Time: 16MS Language: C++ Result: Accepted
#include
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;
}