每日一练1:开学大吉!

今天是8月20号,马上就要开学了:tada:
校长想选一个良辰吉日:date:举行开学典礼:microphone:
希望有同学能写出一个程序:man_technologist:,判断某个日期是否适宜开学:white_check_mark:
于是你自告奋勇:person_raising_hand:,说一首歌的时间就能写好:sunglasses:

校长的要求只有:one:个,希望日子是个单数。
:sweat_smile:尴尬的是,你突然发现键盘上的 % 键坏了;
并且你环顾四周,发现没有多余的键盘可用。
这时你将会做出何种选择:

  • 放弃任务::pensive:
  • 坚持完成::wink:
  • 寻求帮助::pray:
0 投票人
#include <ctime>
#include <cstdlib>
#include <string>
#include <iostream>
using namespace std;

int main()
{
	string s[2] = {"放假放假!", "适宜开学~"};
	srand(time(NULL));
	int x = (rand() & 15) + 21;
	int a = 8 + x / 32;
	int b = (x & 31) + (x > 31);
	cout << a << "月" << b << "日" << endl;
	cout << s[/*b是否为奇数*/] << endl;
    return 0;
}
2 个赞

三目运算符

3 个赞

eee,那还是三目运算符吧

1 个赞

按位与

if((n & 1) == 0){
    // n 是个偶数
}
else{
  // n 是个奇数
}

按位异或

if (1 ^ n == n - 1) {
   //n为奇数
}
if (1 ^ n == n + 1) {
   //n为偶数
}
3 个赞

dalao真厉害

1 个赞

上面的按位与写得很好!
下面的按位异或要注意 运算优先级溢出 的问题哦!:slightly_smiling_face:

666

还有同学能想出其他的解法吗?:wink:

如果这个数的整除以二的商乘以2,不等于这个数,那么它就是奇数,否则为偶

1 个赞

if(a/2*2!=a)

1 个赞

键盘的%坏了可以用软键盘

哈哈哈

还有%键坏了怎么打出5的
image

1 个赞

搞错了
是这一块的5呀
image

太帅了

2023年13月32日再开学吧 :sweat_smile: :sweat_smile: