首页 > 其他分享 >交替数字和

交替数字和

时间:2023-06-08 19:57:57浏览次数:44  
标签:数字 示例 int sign 交替 num result

给你一个正整数 n 。n 中的每一位数字都会按下述规则分配一个符号:

最高有效位 上的数字分配到 正 号。
剩余每位上数字的符号都与其相邻数字相反。
返回所有数字及其对应符号的和。

示例 1:

输入:n = 521
输出:4
解释:(+5) + (-2) + (+1) = 4
示例 2:

输入:n = 111
输出:1
解释:(+1) + (-1) + (+1) = 1
示例 3:

输入:n = 886996
输出:0
解释:(+8) + (-8) + (+6) + (-9) + (+9) + (-6) = 0

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/alternating-digit-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
    public int alternateDigitSum(int n) {
        int result = 0;
        //标志位,代表下一个数字是正或负
        int sign = 1;
        if(getNumDigit(n)%2==0)sign=-1;
        for(;n>0;n/=10){
            result = n%10*sign + result;
            sign = sign * -1;
        }
        //
        return result;
    }
    //判断整数是几位数
    public int getNumDigit(int num) {
        // 设置整数最大位数组参数
        int[] digits = {9, 99, 999, 9999, 99999, 999999, 9999999,
                99999999, 999999999, Integer.MAX_VALUE};
        // 循环判断num的大小
        for (int i = 0; ; i++) {
            // 当num的值小于digits[i]时停止循环,此时i+1便是当前num的位数
            if (num <= digits[i]) {
                return i + 1;
            }
        }
    }
}

标签:数字,示例,int,sign,交替,num,result
From: https://www.cnblogs.com/xiaochaofang/p/17467482.html

相关文章

  • 深度学习项目之mnist手写数字识别实战(TensorFlow框架)
    mnist手写数字识别是所有深度学习开发者的必经之路,mnist数据集的图片十分简单,是二值化图像,像素个数为28x28。所以对于所有研究深度学习的开发者来说学会mnist数据集的模型十分有必要。以此为实例进行计算机视觉如何进行识别出图片中的数据。MNIST手写数字数据集来自美国国家标准与......
  • 对象和数字对象
    什么是对象如果你学过驾驶,八成被教练骂过吧?可能你的脑海中现在还回荡着教练粗暴的吼叫:踩离合器,档位杆推到1挡位置!!慢慢抬起脚,松离合器仔细分析上面的话,大家可以发现,我们的语言描述通常会涉及到对象:对象就是语言描述中涉及的物体。比如上面的离合器、档位杆,就是对......
  • 系统工程(26)数字化转型
    数字化是使用新一代信息技术实现推动改变整个商业模式,使用整个产业链重构,推动改进企业与客户的关系,改进企业和合作伙伴的关系。信息化与数字化的区别:信息化是处理的对象是一个整体。数字化是信息化处理对象的内部具体信息。如信息化是一个PDF文件是传输,而数字化是这个PDF里面......
  • 输入正整数N,检查它是否可以被其数字之和整除
    题目:*输入正整数N,检查它是否可以被其数字之和整除,*输出YES或者NO。不考虑不合理的输入等特殊情况。eg:*例如:78的各位数字之和是:7+8=15,则78是一个各位数字之和能被15整除的整数。classTest53{publicstaticvoidmain(String[]args){Scannerinpu......
  • 最大为N的数字组合
    给定一个按 非递减顺序 排列的数字数组 digits 。你可以用任意次数 digits[i] 来写的数字。例如,如果 digits=['1','3','5'],我们可以写数字,如 '13', '551',和 '1351315'。返回可以生成的小于或等于给定整数n的正整数的个数1.数位dpclassSolution{public:......
  • 力扣---2336. 无限集中的最小数字
    现有一个包含所有正整数的集合[1,2,3,4,5,...]。实现SmallestInfiniteSet类:SmallestInfiniteSet()初始化SmallestInfiniteSet对象以包含所有正整数。intpopSmallest()移除并返回该无限集中的最小整数。voidaddBack(intnum)如果正整数num不存在于无限集中......
  • Ubuntu和MIUI时间显示秒数字
    Ubuntu(23.04)状态栏的时间显示秒,则需要执行以下命令mango@mango-ubuntu:~/Desktop$gsettingssetorg.gnome.desktop.interfaceclock-show-secondstrue小米手机(MIUI13)要展示时间到分秒可以打开时间悬浮窗功能即可。1.打开手机设置点击更多设置。2.点击页面下方的开发......
  • 猜数字
    #include<iostream>usingnamespacestd;intmain(intargc,char**argv){intx=100,d=0;stringa;cout<<"请想一个数"<<endl;system("pause");cout<<"你猜的这个数是:"<<(x-d)/2+d<<en......
  • AI猜数字
    #include<iostream>#include<cmath>usingnamespacestd;intmain(intargc,char**argv){ stringa; intmax=100,min=0; while(a!="对了"){ cout<<"猜是"<<(max-min)/2+min<<endl; cin>>a; if(a==&quo......
  • 猜数字(角色互换)
    #include<iostream>usingnamespacestd;intmain(intargc,char**argv){stringa;intmax=100,min=0,x=1;cout<<"请在你心里想一个1~100的数字,我来猜"<<endl;system("pause");cout<<"第"<<x&......