C#算法之各位相加

 更新时间:2022年01月15日 08:27:11   作者:痴者工良  
这篇文章介绍了C#算法之各位相加,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

各位相加

给定一个非负整数 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#算法之各位相加的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C#判等对象是否相等的方法汇总

    C#判等对象是否相等的方法汇总

    这篇文章主要介绍了C#判等对象是否相等的方法汇总,非常实用,需要的朋友可以参考下
    2014-08-08
  • UnityShader实现百叶窗效果

    UnityShader实现百叶窗效果

    这篇文章主要为大家详细介绍了UnityShader实现百叶窗效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • 详解C# 结构体

    详解C# 结构体

    这篇文章主要介绍了C# 结构体的的相关资料,文中示例代码非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • C# Path类---文件路径解读

    C# Path类---文件路径解读

    这篇文章主要介绍了C# Path类---文件路径,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • 解析C#中如何把控件的边框角画为圆弧

    解析C#中如何把控件的边框角画为圆弧

    以下是对C#中把控件的边框角画为圆弧的实现代码进行了介绍,需要的朋友可以参考下
    2013-07-07
  • C#抓取网络图片保存到本地的实现方法

    C#抓取网络图片保存到本地的实现方法

    下面小编就为大家分享一篇C#抓取网络图片保存到本地的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • c#利用webmail邮件系统发送邮件示例分享

    c#利用webmail邮件系统发送邮件示例分享

    在C#中发送邮件的方式有2种,一种是使用webmail方式进行发送,另外一种就是采用netmail发送的方式,这篇文章介绍了c#使用webmail方式发送邮件示例,大家参考使用吧
    2014-01-01
  • C#静态static的用法实例分析

    C#静态static的用法实例分析

    这篇文章主要介绍了C#静态static的用法,以实例形式较为深入的分析了静态类、静态变量、静态方法以及静态构造函数的特性与用法,需要的朋友可以参考下
    2014-10-10
  • C#编程实现带有Aero效果的窗体示例

    C#编程实现带有Aero效果的窗体示例

    这篇文章主要介绍了C#编程实现带有Aero效果的窗体,涉及C#调用动态链接库针对窗体属性的相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • WPF实现好看的Loading动画的示例代码

    WPF实现好看的Loading动画的示例代码

    这篇文章主要介绍了如何利用WPF实现好看的Loading动画效果,文中的示例代码讲解详细,对我们学习或工作有一定帮助,需要的可以参考一下
    2022-08-08

最新评论