返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#算法之各位相加
  • 920
分享到

C#算法之各位相加

2024-04-02 19:04:59 920人浏览 薄情痞子
摘要

各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1

各位相加

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。

示例:

输入: 38
输出: 2 
解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。

进阶:

你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?

代码模板

public class Solution {
    public int ADDDigits(int num) {

    }
}

测试数据

输入 1
输出 1

输入 10
输出 1

输入 38
输出 2

输入 199
输出 1

输入 8888
输出 5

笔者的方法:

使用了while循环,除一次计算一次,原始数和各位数和同时变化。时间在70ms内。

public static int Csum(int num)
        {
            if (num < 10)       //小于10的数直接返回
                return num;
            int shi = 0;        //记录个位数相加
            while (num > 0)
            {
                if (num >= 10)
                {
                    shi += num % 10;
                    num = num / 10;
                }
                else if (num < 10)
                {
                    shi += num;
                    num = num / 10;
                }

                if (shi >= 10) shi = shi % 10 + shi / 10;    //超过10的个位数重新变化
            }
            return shi;
        }

方法二  弃九验算法

同样在 60-70ms

public class Solution {
    public int AddDigits(int num) {
        if(num==0)
            return 0;
        if(num%9==0)
            return 9;
        return num%9;
    }
}

到此这篇关于C#算法之各位相加的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C#算法之各位相加

本文链接: https://lsjlt.com/news/162565.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C#算法之各位相加
    各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 ...
    99+
    2024-04-02
  • C#算法中怎么实现各位相加
    本文小编为大家详细介绍“C#算法中怎么实现各位相加”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#算法中怎么实现各位相加”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。各位相加给定一个非负整数 num...
    99+
    2023-06-26
  • python各种加密算法
    1..base64 Python内置的base64模块可以实现base64、base32、base16、base85、urlsafe_base64的编码解码,python 3.x通常输入输出都是二进制形式,2.x可以是字符串形式。...
    99+
    2023-01-31
    加密算法 python
  • C语言计算大数相加的方法
    本文实例为大家分享了C语言计算大数相加的具体代码,供大家参考,具体内容如下 问题描述 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述   由于a和b都比较...
    99+
    2024-04-02
  • C++实现算法两个数字相加详解
    Add Two Numbers 两个数字相加 You have two numbers represented by a linked list, where each n...
    99+
    2024-04-02
  • C++如何实现算法两个数字相加
    这篇文章主要为大家展示了“C++如何实现算法两个数字相加”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C++如何实现算法两个数字相加”这篇文章吧。Add Two Numbers 两个数字相加Yo...
    99+
    2023-06-20
  • C#常用的加密算法之一 MD5
    MD5(Message Digest Algorithm 5)是一种常用的加密算法,用于将任意长度的数据转换为固定长度的128位(1...
    99+
    2023-09-09
    C#
  • C#加解密之DES算法的实现
    目录前言实现功能开发环境实现代码实现效果前言 说完了对称加密中的AES,这一篇再来介绍下DES。 加解密原理什么的就不介绍了,大家可以自行百度(主要我也不太明白,也不需要太明白),大...
    99+
    2024-04-02
  • C#加解密之AES算法的实现
    目录实现功能开发环境实现代码实现效果从这一篇开始呢,写一下常用的一些加解密方式。一般我们来说呢,对于加密,我们分为可逆和不可逆。可逆加密又可分为对称加密(AES、DES等)和非对称加...
    99+
    2024-04-02
  • Java C++实现相同MD5加密算法的方式
    目录Java与C++实现相同的MD5加密算法1、Java版2、C++代码3、运行效果 Java与C++实现相同的MD5加密算法 1、Java版 package com.lyz.u...
    99+
    2024-04-02
  • Python编写:计算一个数的各位数字之和
    Python编写:计算一个数的各位数字之和 我们经常会遇到需要对一个数的数字进行分离并进行计算的场景,例如求一个数的各位数字之和。今天,我们就来教大家如何用Python实现这个算法。 算法思路: 我们...
    99+
    2023-10-21
    python 开发语言
  • C语言如何求整数的位数及各位数字之和
    目录求整数的位数及各位数字之和求一个四位整数各位数字之和求整数的位数及各位数字之和 题目描述: 对于给定的正整数N,求它的位数及其各位数字之和。输入格式:输入在一行中给出一个不超过1...
    99+
    2022-11-13
    C语言整数位数 求整数的位数 C语言数字之和
  • C#算法之两数之和
    题目 给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每...
    99+
    2024-04-02
  • C++算法精讲之贪心算法
    目录选择排序平衡字符串买股票的最佳时机跳跃游戏钱币找零多机调度问题活动选择无重叠区间选择排序 我们熟知的选择排序,其采用的就是贪心策略。 它所采用的贪心策略即为每次从未排序的数据中选...
    99+
    2024-04-02
  • 详解C/C++高精度(加减乘除)算法中的压位优化
    目录前言一、基本原理1、存储方式2、计算方式二、完整代码三、性能对比总结附录 1、性能测试代码前言 由于上一章《C/C++ 高精度(加减乘除)算法简单实现》实现了基本的高精度计算,数...
    99+
    2023-01-31
    C++压位优化原理 C++压位优化 C++ 优化
  • 20190524-矩阵算法,矩阵相加,矩
    1.二维矩阵的转置 arrA = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] def turn(arr): if not arr: return [] ...
    99+
    2023-01-31
    矩阵 算法
  • java算法之余弦相似度计算字符串相似率
    目录概述一、理论知识1、说重点2、案例理论知识二、实际开发案例1、pom.xml2、main方法3、Tokenizer(分词工具类)4、Word(封装分词结果)5、CosineSim...
    99+
    2024-04-02
  • 如何使用C语言计算大数相加
    这篇文章给大家介绍如何使用C语言计算大数相加,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译、处理低级存储器...
    99+
    2023-06-15
  • C#算法之散列表
    目录1.散列函数正整数浮点数字符串组合键将 HashCode() 的返回值转化为一个数组索引自定义的 HashCode软缓存2.基于拉链法的散列表散列表的大小删除操作有序性相关的操作...
    99+
    2024-04-02
  • C#算法之回文数
    回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作