首页 > 后端开发 > C++ > 正文

用C++编写的由M个数字组成的N位数中能被5整除的数字

PHPz
发布: 2023-09-02 16:25:06
转载
1467人浏览过

用c++编写的由m个数字组成的n位数中能被5整除的数字

我们给出了一个数字 N 以及一个由 M 位数字组成的数组。我们的工作是找到n个数 由给定的 M 位数字组成的可被 5 整除的数字。

让我们看一些示例来理解问题的输入和输出。

In -

N = 2
M = 3
arr = {5, 6, 3}
登录后复制

出局 -

2
登录后复制

有 2 N 个数字 35 和 65 可能被 5 整除。让我们看另一个例子。

输入 -

立即学习C++免费学习笔记(深入)”;

N = 1
M = 7
arr = {2, 3, 4, 5, 6, 7, 8}
登录后复制

输出-

怪兽AI数字人
怪兽AI数字人

数字人短视频创作,数字人直播,实时驱动数字人

怪兽AI数字人 44
查看详情 怪兽AI数字人
1
登录后复制

给定数组中只有 1 个 1 位数字可以被 5 整除。因此,我们的任务是找到给定的 N 个数字可以被 5 整除的数字的个数。

数字必须以数字 0 或 5 结尾才能被 5 整除。让我们看看算法

算法

  • 检查对于给定数组中的 0 和 5。 2. 如果同时存在 0 和 5,则有两种方法将数字放入个位。否则,将有一种放置数字的方法。
    • 将计数初始化为 2。
    • 现在,剩余的位置可以有 m - 1、m - 2, m - 3, ... n 种分别填充它们的方法。
    • 编写一个从 0 迭代到 n - 1 的循环。
      • 减少数组。
      • 将其与计数相乘。
  • 如果有单个数字 0 或 5,则有只有一种方法可以将数字放入个位。
    • 将计数初始化为 2。
    • 现在,剩余的位置可以有 m - 1、m - 2 , m - 3, ... n 种分别填充它们的方法。
    • 编写一个从 0 迭代到 n - 1 的循环。
      • 减少数组。
      • 将其与计数相乘。
  • 如果没有数字 0 或 5,则我们可以形成一个能被5整除的数字。此时返回-1。

实现

以下是上述算法的C++实现

#include <bits/stdc++.h>

using namespace std;

int numbers(int n, int m, int arr[]) {
   bool isZeroPresent = false, isFivePresent = false;
   int numbersCount = 0;
   if (m < n) {
      return -1;
   }
   for (int i = 0; i < m; i++) {
      if (arr[i] == 0) {
         isZeroPresent = true;
      }
      if (arr[i] == 5) {
         isFivePresent = true;
      }
   }
   if (isZeroPresent && isFivePresent) {
      numbersCount = 2;
      for (int i = 0; i < n - 1; i++) {
         m--;
         numbersCount = numbersCount * m;
      }
   } else if (isZeroPresent || isFivePresent) {
      numbersCount = 1;
      for (int i = 0; i < n - 1; i++) {
         m--;
         numbersCount = numbersCount * m;
      }
   } else {
      return -1;
   }
   return numbersCount;
}
int main() {
   int arr[] = {5, 6, 3};
   cout << numbers(2, 3, arr) << endl;
   return 0;
}
登录后复制

输出

如果运行上面的代码,您将得到以下结果。

2
登录后复制

以上就是用C++编写的由M个数字组成的N位数中能被5整除的数字的详细内容,更多请关注php中文网其它相关文章!

相关标签:
c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:tutorialspoint网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号