#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int N,X,Y;
cin >> N;
for(int i = 1;i <= N;i ++)
{
cin >> X >> Y;
if(X > Y) swap(X,Y);
int sum = 0;
for(int j = X+1;j<Y;j++)
{
if(j%2 == 1 || j%2 == -1) sum += j; // 注意负奇数不要落下
}
cout << sum << endl;
}
}
老哥,我写的和你差不多。 为啥int sum = 0; 这条语句放在第一个for程序之内能通过, 放在for程序之外答案是错误的啊
这个叫恢复现场,可以去了解一下,也可以留联系方式一起交流,如果放在for以外的地方用了一次就基本作废了,因为其他地方不是循环
放在for循环之外每次for循环,sum不会更新为0,相当于你的sum会一直加下去,定义在for循环里面就是每次循环都会更新sum的值将其重新变为0。
谢谢老哥,已经解决了
谢谢老哥,已经解决了
谢谢你了,负奇数这里一直没弄,我就是怎么测试是对的,一直给我报错
判断是否奇数那里可以直接 if (j % 2) 这样就包括正奇数和负奇数了
忘记负奇数了。。呜呜呜我就讲怎么不对。