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

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

数字根的计算方法可以通过数根公式直接求解,而无需逐位相加。数根公式为:当n=0时,数字根为0;否则,数字根等于(n-1)%9 +1。

数字根公式

数字根可以通过以下公式直接计算:[ \text{数字根} = \begin{cases}0 & \text{如果 } n = 0 \(n-1) % 9 + 1 & \text{其他情况}\end{cases} ]

代码实现

int digitSum(int n) {    if (n == 0) {        return 0;    }    return (n - 1) % 9 + 1;}

主函数

#include 
int digitSum(int n) { if (n == 0) { return 0; } return (n - 1) % 9 + 1;}int main() { int number; while (scanf("%d", &number) != EOF) { printf("数字根为:%d\n", digitSum(number)); } return 0;}

优化说明

  • 简洁高效:通过数根公式直接计算,避免了循环或递归,代码简短且运行效率高。
  • 避免重复计算:每次读取输入后立即计算,减少了多次计算的开销。
  • 易于维护:代码结构清晰,单一责任原则明确,每个函数都有明确的功能。
  • 转载地址:http://xmoi.baihongyu.com/

    你可能感兴趣的文章
    Oracle11g服务详细介绍及哪些服务是必须开启的?
    查看>>
    Oracle11g静默安装dbca,netca报错处理--直接跟换操作系统
    查看>>
    oracle12安装软件后安装数据库,然后需要自己配置监听
    查看>>
    Oracle——08PL/SQL简介,基本程序结构和语句
    查看>>
    Oracle——distinct的用法
    查看>>
    Oracle、MySQL、SQL Server架构大对比
    查看>>
    oracle下的OVER(PARTITION BY)函数介绍
    查看>>
    Oracle中DATE数据相减问题
    查看>>
    Oracle中merge into的使用
    查看>>
    oracle中sql查询上月、本月、上周、本周、昨天、今天的数据!
    查看>>
    oracle中sql的case语句运用--根据不同条件去排序!
    查看>>
    Oracle中Transate函数的使用
    查看>>
    oracle中关于日期问题的汇总!
    查看>>
    Oracle中常用的语句
    查看>>
    Oracle中序列的操作以及使用前对序列的初始化
    查看>>
    oracle中新建用户和赋予权限
    查看>>
    Oracle中的NVL,NVL2,NULLIF以及COALESCE函数使用
    查看>>
    Oracle中的rownum 和rowid的用法和区别
    查看>>
    oracle中的大小写、字符、dual、数字、处理、日期、函数、显/隐式、时间、条件表达式case、decode、to_date、to_char、sysdate
    查看>>
    oracle中表和视图的区别,oracle中常用表和视图
    查看>>