今天孩子被2007wa的一头雾水,差点原地去世。然后多次揣摩,果然,我忽略了一个重大的问题。。。
wa的代码如下:
?
#include<stdio.h>
#include<math.h>
int main()
{
long long a,b,c,e;
while(scanf("%lld %lld",&a,&b)!=EOF){
long long d=0,f=0;
for(c=a;c<=b;c++){
if(c==0)continue;
if(c==1||c==-1){
e=pow(c,3);
f+=e;
continue;
}
if(c%2==0){
e=pow(c,2);
d+=e;
continue;
}
if(c%2!=0){
e=pow(c,3);
f+=e;
}
}
printf("%lld %lld\n",d,f);
}
return 0;
}
就这么看,还真的不太容易找出错哪儿了(反正我是这样的)(手动头秃)。然后,屡次揣摩题意,发现题目上可没有说,输入的两个数一定是按照从小到大的顺序排列哦。这就是差点把我wa到哭的小细节(泪目)。
但是没办法,只能擦干眼泪继续肝。修改后的代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
long long a,b,c,e;
while(scanf("%lld %lld",&a,&b)!=EOF){
if(a>b){
int x=a;
a=b;
b=x;
}
long long d=0,f=0;
for(c=a;c<=b;c++){
if(c==0)continue;
if(c==1||c==-1){
e=pow(c,3);
f+=e;
continue;
}
if(c%2==0){
e=pow(c,2);
d+=e;
continue;
}
if(c%2!=0){
e=pow(c,3);
f+=e;
}
}
printf("%lld %lld\n",d,f);
}
return 0;
}
真是没想到,一个判断语句,差点把孩子人整傻了(泪目)。
(如有问题,欢迎指正。)
|