C++ 中的起伏数

2025年5月13日 | 阅读 4 分钟

在本文中,我们将讨论 C++ 中的波浪数,并提供不同的示例。

什么是波浪数?

“波浪数”是指数字交替递增递减的整数。例如,数字131 以递增、递减和递增的顺序交替出现,这使其成为一个波浪数。

性质

  • 波浪数有无数个。
  • 如果一个波浪数有奇数位,它也是一个回文数。
  • 对于任何 n ≥3,存在 9 × 9 = 81 个非平凡的 n 位波浪数,因为第一位不能为零,它可以有九个值,第二位也可以有九个值。
  • 由于 ABABAB...AB = 10101...01 × AB,每个偶数位且至少有四位的波浪数都是合数。例如,282828 = 101010 * 28。
  • 每个偶数位且至少有四位的波浪数都是合数,因为它可以写成:
    XYXYXYXY....XY = 10101010....01 * XY。
    à181818 = 10101 * 18。

示例 1

让我们看一个 C++ 程序来检查一个数字是否是波浪数

输出

Undulating Numbers in C++

说明

  1. isUndulating 函数使用 while 循环遍历数字的各个数字。
  2. 它寻找连续相同的数字并确定数字的模式是否呈波浪状。
  3. 前两位数字指示波浪的方向。
  4. 在 main 函数中,程序会要求用户输入一个数字,然后使用 IsUndulating 函数来判断给定的数字是否为波浪数。

示例 2

让我们看一个 C++ 程序,使用递归来检查一个数字是否是波浪数

输出

Undulating Numbers in C++

说明

  1. 在此示例中,isUndulating 函数被递归调用以确定数字是否遵循波浪模式。
  2. 需要两个输入:要检查的数字和一个布尔值 increase,它指示当前模式是上升还是下降。
  3. 当数字中的位数少于三位时,函数返回false,因为它不能是波浪数。
  4. 接下来,函数确定当前三位数字集是否继续了波浪模式。如果继续,程序将切换上升标志并用剩余的数字递归调用自身。
  5. 在 main 函数中,程序会要求用户输入一个数字,然后使用 IsUndulating 函数来判断给定的数字是否为波浪数。