poj3077的想法

虽然是水提,但是对于俺这种小菜来说,还是需要去总结一下的,其实这道题开始时,并不是很明白,然后再题目的帮助下,还是看懂了,首先来说这道题有一些值得我学习的地方,首先对于输入的数字的范围,是在0----999999999,这个首先可以说是超出了2^32因此这是需要使用是长整形,或者是int64,而对于数字来说,这个说。64int的定义首先我们的先了解一下包括,输入输出,定义是__64int x; scanf("%I64d",&x); printf("%I64d",x);首先输入的是两个下划线,而输入输出的形式是大I,而不是l,因此,没了

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int main()
 5 {
 6     int n,con,i;
 7     __int64 x;
 8 
 9     scanf("%d",&n);
10 
11     while(n--)
12     {
13         scanf("%I64d",&x);
14         con = 0;
15         while(x > 10)
16         {
17             if(x % 10 > 4)
18                 x += 10;
19             x /= 10;
20             con++;
21         }
22         for(i = 0 ;i < con; i++)
23             x *= 10;
24          printf("%I64d\n",x);
25 
26 
27 
28     }
29 
30     return 0;

31 } 

posted on 2013-02-26 13:52  yelcoved  阅读(235)  评论(0)    收藏  举报