文章

【GESP】C++一级练习 luogu-P1634, 禽兽的传染病

GESP一级循环基础练习,难度★☆☆☆☆。

luogu-P1634

题目要求

题目描述

禽兽患传染病了。一个禽兽会每轮传染 $x$ 个禽兽。试问 $n$ 轮传染后有多少禽兽被传染?

输入格式

两个非负整数 $x$ 和 $n$。

输出格式

一个整数,即被传染的禽兽数。

样例输入 #1

1
10 2

样例输出 #1

1
121

提示

保证 $x,n$ 以及答案都在 $64$ 位无符号整数的表示范围内。


题目分析

  1. 每个禽兽在每轮会传染 $x$ 个禽兽,因此在第 $i$ 轮结束时,传染的禽兽数量是前一轮的数量乘以 $(x + 1)$。
  2. 初始时只有一个禽兽,因此在第 $0$ 轮时,传染的禽兽数量为 $1$。
  3. 通过循环 $n$ 次,计算每一轮的传染数量,并累加到总数中。
  4. 最终输出被传染的禽兽总数。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;

int main() {
    long long a, b; // 定义两个长整型变量 a 和 b
    cin >> a >> b; // 从标准输入读取 a 和 b 的值
    long long ans = 1; // 初始化答案为 1

    // 循环 b 次,计算被传染的禽兽数量
    for (long long i = 0; i < b; i++) {
        ans = ans + ans * a; // 更新答案,当前答案加上当前答案乘以 a
    }

    cout << ans; // 输出最终的答案
    return 0; // 返回 0,表示程序正常结束
}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

题目已加入洛谷Java、C++初学团队作业清单,可在线评测,团队名额有限,欢迎加入。

本文由作者按照 CC BY 4.0 进行授权