#include<stdio.h> int x,y,ans,t; int main(){ scanf("%d",&t); while(t--){ ans=0; scanf("%d%d",&x,&y); for(int i=(x<y?x:y)+1;i<(x>y?x:y);i++) if(i&1) ans+=i; printf("%d\n",ans); } }
虽然看不懂,但我大受震撼.
确实
for里面的是什么来的啊,看不懂啊
for里面就是在判断取出x和y里面较小和较大的数,方便用于循环。 其实用if(x>y) swap(x,y); for(int i=x+1;i<y;i++){} 是一样的
三目运算符
很吊 和我一样
词汇贫穷的我只能来一句nb
i&1什么意思
if(i&1==1) 表示 如果i是奇数
妙啊
这就很秀
不应该是i%2==1表示i是奇数吗??
&是按位与,比%更好,因为前者的判定包括负奇数
用位运算符来判断奇偶实在优雅 同时显得我写了二十多行还用swap换位置很笨TT
&
啊?你只写了这么几行?我是啥*
#include [HTML_REMOVED] #include [HTML_REMOVED] using namespace std; int main() { int n; cin>>n; for(int i=1;i<=n;i) { int x,y,z=0; cin>>x>>y; if(x>y) swap(x,y); for(int j=x+1;j<y;j) if(j%2) z=z+j; cout<<z<<endl;
} return 0; } 家人们j%2跟j%2==1有什么区别
j%2 自动判定为 ture ,j%2 == 1是条件判定。
nb
您好这里,有个小问题,就是ans 这个变量一开始就初始化了,没有在循环里面初始化 0 ,这样写的代码我感觉都是一样的啊,但是答案却是不一样的,不知道为啥
因为一开始初始化后循环中每次ans的值就不是0了,算的数字和也就不一样了
只有第一次初始化了
虽然看不懂,但我大受震撼.
确实
for里面的是什么来的啊,看不懂啊
for里面就是在判断取出x和y里面较小和较大的数,方便用于循环。
其实用if(x>y) swap(x,y);
for(int i=x+1;i<y;i++){}
是一样的
三目运算符
很吊 和我一样
词汇贫穷的我只能来一句nb
i&1什么意思
if(i&1==1) 表示 如果i是奇数
妙啊
这就很秀
不应该是i%2==1表示i是奇数吗??
&是按位与,比%更好,因为前者的判定包括负奇数
用位运算符来判断奇偶实在优雅 同时显得我写了二十多行还用swap换位置很笨TT
&
啊?你只写了这么几行?我是啥*
#include [HTML_REMOVED]
#include [HTML_REMOVED]
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i)
{
int x,y,z=0;
cin>>x>>y;
if(x>y) swap(x,y);
for(int j=x+1;j<y;j)
if(j%2)
z=z+j;
cout<<z<<endl;
}
return 0;
}
家人们j%2跟j%2==1有什么区别
j%2 自动判定为 ture ,j%2 == 1是条件判定。
nb
您好这里,有个小问题,就是ans 这个变量一开始就初始化了,没有在循环里面初始化 0 ,这样写的代码我感觉都是一样的啊,但是答案却是不一样的,不知道为啥
因为一开始初始化后循环中每次ans的值就不是0了,算的数字和也就不一样了
只有第一次初始化了