【练习】腾讯2017秋招笔试编程题——2.游戏任务标记
发布日期:2021-05-28 16:53:53 浏览次数:25 分类:精选文章

本文共 1124 字,大约阅读时间需要 3 分钟。

腾讯2017秋招笔试编程题——2.游戏任务标记

随着科技的发展,游戏产业也在不断演变,各种任务系统的设计越来越精细化。特别是一些只能完成一次的任务,往往成为玩家挑战的重要环节之一。本题通过编程实现对这些任务完成情况的跟踪记录,确保游戏机制的正确运行。

根据题意,我们需要设计一个任务完成标记系统,使用32个unsigned int类型来记录1024个任务的完成状态。每个任务ID的范围在1到1024之间,初始状态为未完成。程序需要完成两个主要操作:设置第一个ID的任务为已完成,并检查第二个ID的任务状态。

输入输出说明

  • 输入描述:输入包括一行,两个整数表示任务ID。
  • 输出描述:输出一个0或1,表示第二个任务是否完成。若任一任务ID不在1到1024范围内,输出-1。

解决思路

首先,我们需要处理输入的任务ID,检查它们是否在有效范围内。若不在有效范围内,立即输出-1。假设输入的两个ID均为合法值后,将第一个ID对应的任务标记为已完成状态。最后,检查第二个ID的任务状态,输出相应的结果。

代码实现

#include 
using namespace std;int main() { unsigned int a[32] = {0}; // 初始化数组,所有位置初始化为0 int id1, id2; // 读取输入 cin >> id1 >> id2; // 检查输入是否在合法范围内 if (id1 < 1 || id1 > 1024 || id2 < 1 || id2 > 1024) { cout << "-1"; return; } // 设置第一个ID为已完成 a[id1 - 1] = 1; // 将数组从0开始,ID从1开始 // 检查第二个ID的状态 if (a[id2 - 1] == 1) { cout << 1; } else { cout << 0; }}

代码解释

  • 数组初始化:unsigned int数组a[32]始终初始化为0,表示所有任务初始为未完成状态。
  • 输入处理:从标准输入读取两个整数id1和id2。
  • 范围检查:判断两个ID是否在1到1024的范围内,范围外的ID直接输出-1。
  • 标记完成任务:将第一个ID对应的数组位置标记为1,表示完成。
  • 检查任务状态:根据第二个ID检查数组中的值,输出1表示已完成,0表示未完成。
  • 这个解决方案通过直接而简洁的逻辑实现了题目要求,确保了代码的高效性和易读性,适用于大多数编程环境。

    上一篇:IntelliJ IDEA 安装及创建Java项目(附安装包)
    下一篇:IntelliJ IDEA 的 .idea 目录加入.gitignore无效的解决方法

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年04月24日 09时10分58秒