Blog·Tanky WooABOUTRSS

POJ 3077 Rounders

08 Jul 2010
这篇博客是从旧博客 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;
}