博客
关于我
【牛客】KY72 Digital Roots(数根)
阅读量:205 次
发布时间:2019-02-28

本文共 594 字,大约阅读时间需要 1 分钟。

题目描述

题目翻译
翻译
思路分析
  简单的说就是求一个数的各位数字单独相加的总和不大于9,那么我们用一个递归就能很简单的解决问题。先输入一个数,以该数其除以10是否大于0作为循环条件;这一步很好理解,即大于0,说明至少是个两位数,转到递归函数,小于0是个位数则可以直接输出。递归函数中让s等于各位相加的总和,最后返回s。

代码实现

#include
int sum(int n){ // 递归思想,s=各位相加 如果依然不是个位数将继续递归 int s = 0; while(n != 0){ s = s + n % 10; n = n / 10; } return s;}int main(){ int n; while(scanf("%d",&n) != EOF){ while(n/10 > 0){ n = sum(n); } printf("%d\n",n); } return 0;}

  同时该题还有一个更简单的解决办法,即直接使用数根公式进行求解。

数根公式

int digitSum(int n){    // 数根公式 d=(n−1)%9+1; 直接求出结果    return (n-1)%9+1; }

转载地址:http://xmoi.baihongyu.com/

你可能感兴趣的文章
net发布的dll方法和类显示注释信息(字段说明信息)[图解]
查看>>
Net处理html页面元素工具类(HtmlAgilityPack.dll)的使用
查看>>
Net操作Excel(终极方法NPOI)
查看>>
Net操作配置文件(Web.config|App.config)通用类
查看>>
Net连接mysql的公共Helper类MySqlHelper.cs带MySql.Data.dll下载
查看>>
NeurIPS(神经信息处理系统大会)-ChatGPT4o作答
查看>>
neuroph轻量级神经网络框架
查看>>
Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(7)
查看>>
new Blob()实现不同类型的文件下载功能
查看>>
NEW DATE()之参数传递
查看>>
New Journey--工作五年所思所感小记
查看>>
New Relic——手机应用app开发达人的福利立即就到啦!
查看>>
new work
查看>>
new 一个button 然后dispose,最后这个button是null吗???
查看>>
new一个对象的过程
查看>>
new对象时,JVM内部究竟藏了什么小秘密?
查看>>
new操作符的实现原理
查看>>
Next.js React Server Components 教程
查看>>
NextGen Mirth Connect XStream反序列化远程代码执行漏洞(CVE-2023-43208)
查看>>
next项目部署到服务器pm2进程守护
查看>>