5 6
5
这主要是可能出现溢出的问题,超过long long int 的数据范围,所以但是最后结果是没有超过的,因此需要控制好中间量的大小就好了。
1 #include<stdio.h> 2 int main() 3 { unsigned _int64 a,b; 4 while(scanf("%I64u %I64u",&a,&b)!=EOF ) 5 { 6 7 if(a%2==0&b%2==0) 8 { a=a/2; 9 b=b/2; 10 printf("%I64u\n",a+b);} 11 else { 12 a=a/2; 13 b=b/2; 14 printf("%I64u\n",a+b+1);} 15 16 } 17 return 0; 18 }
原文:https://www.cnblogs.com/gznb/p/11212844.html