检查数字的递归函数

2023-12-19

编写一个递归函数来检查数字中有多少位可以除以它们后面的数字。例子:84963应该返回 2,因为 8 可以除以 4,6 可以除以 3。我的函数似乎根本没有输出任何内容。

#include <iostream>

using namespace std;

int fun (int n);

int main()
{
    int n;
    cin >> n;
    cout << fun(n) << endl;
    return 0;
}

int fun(int n){
    int count = 0;
    if (fun(n % 100) % fun(n % 10) == 0)
        count++;
    return count;
}

您的递归目前没有多大意义。一个更合乎逻辑的方法是查看最后一个数字(所以1 in 321),当前可以除倒数第二个数字(所以2 in 321)。您可以通过定义一个函数来检查这是否可能,并递归地传递除以 10 的数字来完成此操作。该函数如下所示:

int fun(int n)
{
  if (n < 10)
    return 0;
  int last = n % 10;
  n = n / 10;
  int secondlast = n % 10;
  if (secondlast != 0 && last != 0 && secondlast % last == 0) 
    return 1 + fun(n);
  else
    return fun(n);
}

更新说明:在从莫斯科的评论中研究了弗拉德之后,我移动了last != 0部分条件向前推进,解决 bug(除以 0)。

来自莫斯科的弗拉德(Vlad)谈论的问题如下:例如,如果您想要零件04要计为 0,您应该使用上面的代码。否则你应该删除secondlast != 0 part.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查数字的递归函数 的相关文章

  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • C# HashSet 只读解决方法

    这是示例代码 static class Store private static List
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看
  • 当从finally中抛出异常时,Catch块不会被评估

    出现这个问题的原因是之前在 NET 4 0 中运行的代码在 NET 4 5 中因未处理的异常而失败 部分原因是 try finallys 如果您想了解详细信息 请阅读更多内容微软连接 https connect microsoft com
  • 当我使用 OpenSSL1.1.0g 根据固定的 p 和 g 值创建 Diffie Hellman 密钥协议密钥时,应该执行哪些检查?

    您好 我尝试通过这段代码使用修复 p 和 g 参数来制作 Diffie Hellman Keysanswer https stackoverflow com a 54538811 4706711 include

随机推荐

  • 为什么我无法使用 UPnP 单播 M-SEARCH 来代替 MultiCast M-SEARCH?

    早上好 我们决定尽可能使用 UPnP 我们在 239 255 255 250 1900 上使用 MultiCast 进行 M SEARCH 不过 我们正在研究如何处理客户在其网络上锁定 MultiCast 的情况 查看 UPnP 1 1 规
  • 为什么 openCV 中的 CvBlobDetector 位于旧库中?

    是否有更新的斑点检测 跟踪库 这不是一个好的图书馆吗 难道遗留代码不应该是旧的 无用的代码吗 有人知道吗 这是较新的斑点检测器 http opencv itseez com modules features2d doc common int
  • Jquery 查找类型的第一个直接子代

    我正在寻找一种方法来查找精确类型的元素的第一个直接子元素 让我们想象一下这个标记 div div p Stuff p div p Stuff 2 p p Stuff 3 p div 所以在这里 我想要得到的是 Stuff 2 作为直接子代的
  • 好友声明介绍的姓名

    我正在考虑 N3797 工作草案 有来自3 3 1 4的引用 好友声明 11 3 可能会引入一个 可能不可见的 名称 进入封闭的命名空间 进一步在 3 3 2 11 中我发现 友元声明指的是作为成员的函数或类 最近的封闭命名空间 但它们不会
  • Node.js:计算文件中的行数

    我有很大的文本文件 其范围在30MB and 10GB 如何使用以下命令计算文件中的行数Node js 我有这些限制 不需要将整个文件写入内存 执行该任务不需要子进程 不使用wc的解决方案 var i var count 0 require
  • 通过 SSH 传输文件 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在命令行上通过 SSH 连接到远程服务器 并尝试使用以下命令将目录复制到本地计算机上scp命令 但是 远程服务器返回此 使用 消息 Stewart
  • 为什么let=0有效但var=0无效? [复制]

    这个问题在这里已经有答案了 为什么不 let 0 显示任何语法错误 但是 var 0 做 我在Safari上测试过 不过我尝试过 console log let 但它有错误 似乎 let 不是一个已经定义的变量 为什么会发生这种情况 Bec
  • gke-metrics-agent 与 prometheus 相关的多个错误

    我向 GKE 部署了一个新应用程序 我看到 GKE 仪表板的 gke metrics agent 上有数千个错误 它使用大量资源 I checked the logs and I saw all errors related to Prom
  • 是否可以重写控制台中的前一行?

    我正在尝试在我的控制台应用程序中创建过程动画 是否可以根据此需要重写以前的行 我知道关于 r但它仅适用于当前行 如果不可能的话 怎样才能实现动画效果呢 谢谢 我的控制台是标准 Ubuntu 12 04 终端模拟器 感谢 MrSmith42
  • 如何使用Python将BLOB插入Oracle?

    我正在尝试使用 cx Oracle 6 3 将大量 BLOB 每个 2 到 20 MB 插入到 Oracle 12 中 经过大量的谷歌搜索和实验 我得到了以下代码 我是 Python 新手 想知道 该方法有效吗 有更快的方法吗 usr lo
  • 使用 Get-Help cmdlet 以相同格式显示基于注释的帮助

    我尝试使用 Get Help cmdlet 以与显示从 XML 文件生成的 cmdlet 帮助主题相同的格式显示基于注释的帮助 执行此操作的能力记录在about Comment based Help http technet microso
  • Tridion GUI Extensions CommandSet 如何映射到 js 方法?

    Tridion GUI 扩展配置如何将名称映射到 JS 文件 例如 我正在使用 Jaime 的你好世界帖子 http jaimesantosalcon blogspot com 2011 02 sdl tridion 2011 ga gui
  • 如何在 C#/Win32 api 中找到 Windows 应用程序执行别名的目标?

    Microsoft Windows 终端 通过 Microsoft Store 安装 创建 0 字节wt exe文件是一个Windows 执行别名 https www tiraniddo dev 2019 09 overview of wi
  • 如何计算(数学)字符串表达式,vb.net

    我不确定我使用的术语是否正确 但我有一个字符串表达式 我希望计算它 这是一个例子 Dim S 4 4 dim result evaluate S some sort of treatment that return 8 我不确定这将如何运作
  • 与 MinGW-64 的静态链接

    我正在尝试使用 64 位 MinGWhttp sourceforge net projects mingw w64 files Toolchains 20targetting 20Win64 Automated 20Builds http
  • java.net.SocketException:连接由对等方重置:服务文件时套接字写入错误

    我正在尝试使用套接字实现 HTTP 服务器 如果客户端 例如浏览器 请求目录 服务器将显示可用文件的列表 当客户端请求文件时就会出现问题 我收到以下错误 java net SocketException Connection reset b
  • 如何在Angular 2中实现AOP

    我是 Angular 2 的新手 但我在 Angular 1 x 方面有很好的经验 我收到错误 找不到模块 aspect js dist lib aspect 下面是我的代码 日志记录 aspect ts import Injectable
  • Android OpenGL图像处理——不使用SurfaceView

    我想使用 OpenGL ES 2 和着色器进行一些背景图像处理 但不绘制到表面 即仅离屏渲染到帧缓冲区 虽然我已经在 iOS 上做到了这一点 但我在 Android 上却遇到了困难 我想我已经接近创建一个工作 OpenGL 上下文 但还没有
  • C++:生成函数调用树

    我想解析项目中当前的 C 文件并列出其中的所有方法 函数 然后生成函数调用和调用者树 F g 您可以参考 doxygen 如何生成调用树 我已经检查了 gccxml 但它没有列出从另一个函数调用的函数 请建议我一些我可以使用的轻量级工具 开
  • 检查数字的递归函数

    编写一个递归函数来检查数字中有多少位可以除以它们后面的数字 例子 84963应该返回 2 因为 8 可以除以 4 6 可以除以 3 我的函数似乎根本没有输出任何内容 include