【算法小白周赛1A】分析 - 题解与代码

news/2024/11/17 3:44:39/

题目链接:https://www.starrycoding.com/problem/155

题目描述

小可可最近在学数学运算!他希望考考你,给你两个整数 A , B A,B A,B,询问 A × B A\times B A×B 是否是偶数。

注意,可能存在前导 0 0 0,比如 0010 0010 0010但是他和 10 10 10一致。

输入格式

有多组测试数据

对于每组数据,一行,两个整数 A , B A,B A,B

输出格式

对于每组数据,输出一行,如果 A × B A \times B A×B是偶数,输出 Yes,否则输出 No

样例

样例输入#1:
1 3
1000000000000000000 1000000000000000000
样例输入#2:
No
Yes

数据范围

  • 数字长度保证不超过 100 100 100位。

题解

题目大意:

给你两个数字,判断 a × b a \times b a×b是否是偶数。

思路:

一个简单的想法: a ∗ b % 2 a * b \% 2 ab%2即可。但是注意到数据范围数字位数很大。适当做调整。

我们知道如果 a ∗ b a * b ab中有一个是偶数,答案是偶数,否则是奇数。

题目就变成了判断奇偶数。

方法一:高精度

写一个高精度乘法和高精度取余,但是没什么必要。

方法二:字符串

用字符串存储两个数字,如果字符串最后一位是偶数,则字符串是偶数。

分别判断两个字符串即可。

AC Code

#pragma GCC optimize(3,"Ofast","inline")
#pragma GCC target ("avx")
#pragma GCC optimize ("inline")#include <bits/stdc++.h>#define ios_close std::ios::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr)using i64 = long long;
using u64 = unsigned long long;
using ld = long double;
#define Pi  acos(-1.0)
#define rep(i, a, n) for(int i = a; i <= n; i ++ )
#define per(i, a, n) for(int i = a; i >= n; i -- )
#define pb push_back
#define eb emplace_back
#define mp std::make_pair
#define all0(x) (x).begin(), (x).end()
#define all1(x) (x).begin() + 1, (x).end()
#define fi first
#define se second
#define SZ(x) ((int)(x).size())
#define pii std::pair<int, int>
#define pil std::pair<int, i64>
#define pli std::pair<i64, int>
#define pll std::pair<i64, i64>void solve(){std::string a, b;while(std::cin >> a >> b){if((a[SZ(a) - 1] - '0') % 2 == 0 || (b[SZ(b) - 1] - '0') % 2 == 0){std::cout << "Yes\n";} else {std::cout << "No\n";}}
}int main(){
#if 0ios_close;
#endif#if 0freopen("analysis.in", "r", stdin);freopen("analysis.out", "w", stdout);
#endifint T = 1;
#if 0std::cin >> T;
#endif#if 0scanf("%d", &T);
#endifwhile(T -- ){solve();}return 0;
}

在这里插入图片描述

视频题解

【免费】看这里:https://www.starrycoding.com/contest/3


http://www.ppmy.cn/news/1446689.html

相关文章

Linux 查看主机内存,CPU使用率的两种推荐指令top ,free 指令解读

top 指令 top 指令是 Linux 系统中一个实时显示系统状态的动态视图工具&#xff0c;主要用于监控系统的整体运行状态&#xff0c;包括CPU使用率、内存使用情况、运行中的进程信息等。它是一个非常强大的命令行工具&#xff0c;常用于性能分析和故障排查。下面是一些基本的使用…

【webrtc】MessageHandler 7: 基于线程的消息处理:切换main线程向observer发出通知

以当前线程作为main线程 RemoteAudioSource 作为一个handler 仅实现一个退出清理的功能 首先on message的处理会切换到main 线程 :main_thread_其次,这里在main 线程对sink_ 做清理再次,在main 线程做出状态改变,并能通知给所有的observer 做出on changed 行为。对接mediac…

Flask教程2:flask高级视图

文章目录 add_url_rule类视图的引入装饰器的自定义与使用蓝图的使用url_prefix设置蓝图前缀 add_url_rule 欲实现url与视图函数的绑定&#xff0c;除了使用路由装饰器app.route&#xff0c;我们还可以通过add_url_rule(rule,endpointNone,view_funcNone)方法&#xff0c;其中&…

OpenResty 安装及lua-resty-redis

目的&#xff1a; 需要记录用户真实IP 访问量 1. 下载openresty&#xff1a; https://openresty.org/download/openresty-1.25.3.1.tar.gz2. 编译安装 ./configure --help | more 可以查看configure 可选参数 # 1、安装前置依赖 yum install -y readline-devel pcre pcre-…

十一、大模型-Semantic Kernel与 LangChain 的对比

Semantic Kernel 与 LangChain 的对比 Semantic Kernel 和 LangChain 都是用于开发基于大型语言模型&#xff08;LLM&#xff09;的应用程序的框架&#xff0c;但它们各有特点和优势。 基本概念和目标 Semantic Kernel 是一个由微软开发的轻量级 SDK&#xff0c;旨在帮助开发…

Python基础学习之记录中间文件

倘若想记录代码运行过程中的结果文件&#xff0c;那么以下函数仅供参考 代码示例&#xff1a; import os import datetime import sys import pandas as pd# 定义总的文件夹路径 base_folder E:\\D\\log\\product_data_compare_log# 定义一个函数来创建带时间戳的文件夹 def…

k8s 资源组版本支持列表

1 kubernetes的资源注册表 kube-apiserver组件启动后的第一件事情是将Kubernetes所支持的资源注册到Scheme资源注册表中,这样后面启动的逻辑才能够从Scheme资源注册表中拿到资源信息并启动和运行API服务。 kube-apiserver资源注册分为两步:第1步,初始化Scheme资源注册表;…

Python学习指南

Python是一门应用极为广泛的编程语言&#xff0c;目前在Web开发、爬虫、数据分析、人工智能和机器人开发等领域都有着广泛的应用。Python的语法相对简单&#xff0c;许多人选择通过自学或参加培训来掌握Python技术。针对以就业为目的的学习者&#xff0c;选择学习Python技术时&…