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;
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 }
浙公网安备 33010602011771号