上计会青少年算法竞赛3月月赛

3月月赛丙组题 https://iai.sh.cn/contest/3打鱼还是晒网5天一个周期,如果 n 除以5的余数是4或者0,就是晒网;否则就是打鱼注意:任何正整数除以 r 的余数的范围是 0 ~ (r-1)#include <iostream>using namespace std;int main() { int n; cin >> n; if (n%5==0 || n%5==4) cout << "Lying" <<
摘要由CSDN通过智能技术生成

3月月赛丙组题 https://iai.sh.cn/contest/3

打鱼还是晒网
  • 5天一个周期,如果 n 除以5的余数是4或者0,就是晒网;否则就是打鱼

  • 注意:任何正整数除以 r 的余数的范围是 0 ~ (r-1)

#include <iostream>
using namespace std;

int main() {
   
	int n;
	cin >> n;
	
	if (n%5==0 || n%5==4) cout << "Lying" << endl;
	else cout << "Fishing" << endl;
	
	return 0;
}
数字加密
  • 这题方法很多,可以把输入当做一个整型变量,也可以把输入当做字符串
整型变量
#include <iostream>
using namespace std;

int main() {
   
	int n;
	cin >> n;
	
	cout << 9 - n%10;
	cout << 9 - n/10%10;
	cout << 9 - n/100%10;
	cout << 9 - n/1000;

	return 0;
}
字符数组
#include <iostream>
using namespace std;

int main() {
   
	char c[4];
	cin >> c;
	
	for (int i = 3; i >= 0; i--) {
   
		c[i] = char('0' + '9' - c[i]);
		cout << c[i]; 
	}
	
	return 0;
}
双质数
  • 没什么好说的,判断质数的模板题。一定要把判断质数的函数熟练默写出来
  • 主程序要枚举的数字不超过 2 ∗ 1 0 5 2*10^5 2105。判断质数的代码时间复杂度是 O ( n ) O(\sqrt{n}) O(n ),表面上看会超时,但大部分数字是合数,很快就会找出因子,函数中实际循环次数很少
  • 掌握这道题里布尔变量的用法:
    • 设置布尔变量 flag,并初始化为“真”
    • 在循环过程中,如果某条件成立,则将 flag 修改为“假”
    • 循环结束后,如果 flag 仍然为假,就说明循环里的条件没有成立过
#include <iostream>
using namespace std;

bool isPrime(int x) {
   
	if (x < 2) return false;
	for (int i = 2; i <= x/i; i ++ ) {
   
		if (x % i == 0) {
   
			return false;
		}
	}
	return true;
}

int main() {
   
	int a, b;
	cin >> a >> b;
	
	bool flag = true;
	
	for (int i = a; i <= b; i ++ ) {
   
		if (isPrime(i) && isPrime(i/10)) {
   
			flag = false;
			cout << i << endl;
		}
	}
		
	if (flag) cout << "None" << endl;
	
	return 0;
}
连乘问题
  • 很多同学会先用循环计算 a 1 ∗ a 2 ∗ a 3 . . . a n % 10000 a_1*a_2*a_3...a_n \%10000 a1a2a3...an%10000,再除以 a i a_i ai,这样计算的结果是不对的,我们来看下面的例子
    • 123 ∗ 456 12 % 10000 = 4674 \displaystyle\frac{123*456}{12}\%10000=4674 12123456
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值