当前位置: 面试刷题>> 图书复印 (经典算法题500道)


题目描述补充

假设你是一家图书馆的管理员,负责处理读者的图书复印请求。图书馆有一个系统,记录了每本书的剩余可复印页数。读者可以向图书馆提交复印请求,请求中包含要复印的书籍ID和复印页数。图书馆需要编写一个程序来处理这些请求,检查书籍是否有足够的页数可供复印,如果足够,则减少书籍的可复印页数,并返回成功消息;如果不足,则返回失败消息。

要求

  1. 读者提交的请求应包含书籍ID和复印页数。
  2. 程序需要维护一个书籍的剩余可复印页数列表。
  3. 对于每个请求,程序应能正确处理并返回结果。

示例代码

PHP 示例

<?php

// 假设这是图书馆书籍的可复印页数列表
$books = [
    'book1' => 100,
    'book2' => 50,
    'book3' => 75
];

function processCopyRequest($books, $bookId, $copyPages) {
    if (!isset($books[$bookId])) {
        return "书籍ID不存在";
    }
    
    if ($books[$bookId] < $copyPages) {
        return "复印失败:书籍剩余页数不足";
    }
    
    $books[$bookId] -= $copyPages;
    return "复印成功,剩余可复印页数为:" . $books[$bookId];
}

// 测试代码
echo processCopyRequest($books, 'book1', 30);  // 应返回复印成功及剩余页数
echo "\n";
echo processCopyRequest($books, 'book2', 60);  // 应返回复印失败

?>

Python 示例

# 假设这是图书馆书籍的可复印页数字典
books = {
    'book1': 100,
    'book2': 50,
    'book3': 75
}

def process_copy_request(books, book_id, copy_pages):
    if book_id not in books:
        return "书籍ID不存在"
    
    if books[book_id] < copy_pages:
        return "复印失败:书籍剩余页数不足"
    
    books[book_id] -= copy_pages
    return f"复印成功,剩余可复印页数为:{books[book_id]}"

# 测试代码
print(process_copy_request(books, 'book1', 30))  # 应返回复印成功及剩余页数
print(process_copy_request(books, 'book2', 60))  # 应返回复印失败

JavaScript 示例

// 假设这是图书馆书籍的可复印页数对象
let books = {
    'book1': 100,
    'book2': 50,
    'book3': 75
};

function processCopyRequest(books, bookId, copyPages) {
    if (!books.hasOwnProperty(bookId)) {
        return "书籍ID不存在";
    }
    
    if (books[bookId] < copyPages) {
        return "复印失败:书籍剩余页数不足";
    }
    
    books[bookId] -= copyPages;
    return `复印成功,剩余可复印页数为:${books[bookId]}`;
}

// 测试代码
console.log(processCopyRequest(books, 'book1', 30));  // 应返回复印成功及剩余页数
console.log(processCopyRequest(books, 'book2', 60));  // 应返回复印失败

// 码小课网站中有更多相关内容分享给大家学习

以上代码示例均展示了如何根据题目要求编写处理图书复印请求的函数,并提供了简单的测试代码。

推荐面试题