刷题日记——礼炮车(厦门大学机试)

2024-03-14 08:44

本文主要是介绍刷题日记——礼炮车(厦门大学机试),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

例题——礼炮车

在这里插入图片描述

方法一:按照开炮时间对时间间隔取余

第一炮设置都是第0秒打响,那么:

  • 间隔为5的炮车打响第n炮,应该在(n-1)*5秒
  • 间隔为6的炮车打响第n炮,应该在(n-1)*6秒
  • 间隔为7的炮车打响第n炮,应该在(n-1)*7秒

代码:

#include <cstdio>
#include <map>
#include <string>
#include <cmath>
#include <vector>
#include <algorithm>
#include <stack>
using namespace std;int main(){int counts = 1;int times = 21;int a,b,c;for(int i=5;i<=(times-1)*7;i++){a = (int)(i%5==0);b = (int)(i%6==0);c = (int)(i%7==0);if(a==1&&i<=(times-1)*5||b==1&&i<=(times-1)*6||c==1){counts++;}//printf("%d\t%d\t%d\t%d\t%d\n",i,a,b,c,counts);}printf("%d",counts);return 0;
}

方法二:使用set去重

时间从0开始,每次加上相应时间间隔,将时间入set,最后,set的size即为炮响次数

  • 间隔为5的炮车每次+5
  • 间隔为6的炮车每次+6
  • 间隔为7的炮车每次+7

set类型介绍

在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。
详细请参考:【C++中set用法详解】

代码

#include <cstdio>
#include <map>
#include <string>
#include <cmath>
#include <vector>
#include <algorithm>
#include <stack>
#include <queue>
#include <set>
using namespace std;int main(){int times = 21;int a=0,b=0,c=0;set<int> st;while(0!=--times){a += 5;b += 6;c += 7;st.insert(a);st.insert(b);st.insert(c);}printf("%d",st.size()+1);return 0;
}

这篇关于刷题日记——礼炮车(厦门大学机试)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/807864

相关文章

机试算法模拟题 服务中心选址

题目描述 一个快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置,并希望能够以此为依据为新的服务中心选址:使服务中心到所有区域的距离的总和最小。 给你一个数组positions,其中positions[i] = [left, right] 表示第 i 个区域在街道上的位置,其中left代表区域的左侧的起点,right代表区域的右侧终点,假设服务中心的位置为loca

【每日刷题】Day113

【每日刷题】Day113 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 91. 解码方法 - 力扣(LeetCode) 2. LCR 098. 不同路径 - 力扣(LeetCode) 3. 63. 不同路径 II - 力扣(LeetCode) 1. 91. 解码方法 - 力扣(LeetCode) //思路:动态规划。 cl

华为OD机试真题-学生方阵-2024年OD统一考试(E卷)

题目描述 学校组织活动,将学生排成一个矩形方阵。 请在矩形方阵中找到最大的位置相连的男生数量。这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的。 注:学生个数不会超过10000 输入描述 输入的第一行为矩阵的行数和列数, 接下来的 n行为矩阵元素,元素间用""分隔。 输出描述 输出一个整数,表示矩阵中最长的位

hot100刷题第1-9题,三个专题哈希,双指针,滑动窗口

求满足条件的子数组,一般是前缀和、滑动窗口,经常结合哈希表; 区间操作元素,一般是前缀和、差分数组 数组有序,更大概率会用到二分搜索 目前已经掌握一些基本套路,重零刷起leetcode hot 100, 套路题按套路来,非套路题适当参考gpt解法。 一、梦开始的地方, 两数之和 class Solution:#注意要返回的是数组下标def twoSum(self, nums: Lis

代码随想录刷题day25丨491.递增子序列 ,46.全排列 ,47.全排列 II

代码随想录刷题day25丨491.递增子序列 ,46.全排列 ,47.全排列 II 1.题目 1.1递增子序列 题目链接:491. 非递减子序列 - 力扣(LeetCode) 视频讲解:回溯算法精讲,树层去重与树枝去重 | LeetCode:491.递增子序列_哔哩哔哩_bilibili 文档讲解:https://programmercarl.com/0491.%E9%80%92%E

【中等】保研/考研408机试-二分查找(模板题)

二分查找就是在一个有序数组中查找某个值,以首端尾端的中点mid查找对比,mid与要查找的数进行对比,看落在哪个区间,在那个区间重新得到首端和尾端,进而得到新的mid值。 一、模板题 二分查找-I_牛客题霸_牛客网 class Solution {public:int search(vector<int>& nums, int target) {int left=0,right=nums.s

代码随想录刷题day24丨93.复原IP地址 ,78.子集 , 90.子集II

代码随想录刷题day24丨93.复原IP地址 ,78.子集 , 90.子集II 1.题目 1.1复原IP地址 题目链接:93. 复原 IP 地址 - 力扣(LeetCode) 视频讲解:回溯算法如何分割字符串并判断是合法IP?| LeetCode:93.复原IP地址_哔哩哔哩_bilibili 文档讲解:https://programmercarl.com/0093.%E5%A4%8

研1日记5

x = torch.tensor(x),numpy 转tensor 三维矩阵相加 screen -S pid 进入之前创建好的screen transpose()只能一次操作两个维度;permute()可以一次操作多维数据,且必须传入所有维度数, transpose()中的dim没有数的大小区分;permute()中的dim有数的大小区分 PyTorch 两大转置函数 trans

【笔记】数据结构刷题09

快速排序 215. 数组中的第K个最大元素 class Solution {public:int findKthLargest(vector<int>& nums, int k) {return divide(nums,0,nums.size()-1,nums.size()-k);}int divide(vector<int>& nums,int left,int right,int k)

C语言:刷题日志(1)

一.阶乘计算升级版 本题要求实现一个打印非负整数阶乘的函数。 其中n是用户传入的参数,其值不超过1000。如果n是非负整数,则该函数必须在一行中打印出n!的值,否则打印“Invalid input”。 首先,知道阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1。那么我们先来个简单的阶乘计算吧。 #include<stdio.h>int Fact(int n){if (n <=