突然脑抽,想到没什么大用但是有大病的东西
在c++中:如果要判断一个整形序列是不是2的倍数,我们只需要把这个数%2,看它是否==0即可。
详见代码1
#include<bits/stdc++.h>
#define int long long
const int maxn=400010;
int n;
using namespace std;
signed main(){
cin>>n;
if(n%2==0) cout<<0;//偶数
else if(n%2==1) cout<<1;//奇数
return 0;
}
但是,如果我们输入的是一个字符串,我们取这个字符串的最后一个字符,对它进行判断,也使用%2的方法。
详见代码2
#include<bits/stdc++.h>
#define int long long
const int maxn=4000010;
using namespace std;
char s[maxn];
int n;
signed main(){
cin>>s;//字符
int t=(s[strlen(s)-1]-'0');
if(t%2==0) cout<<0;//偶数
else if(t%2!=2) cout<<1;//奇数
return 0;
}
没什么别的事,只是好奇(有病)而已,想知道哪个会优化一点?或者讨论区有更优化的方案。