iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++怎么实现加一运算
  • 465
分享到

C++怎么实现加一运算

2023-06-20 16:06:18 465人浏览 泡泡鱼
摘要

本篇内容介绍了“c++怎么实现加一运算”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Plus One 加一运算Given a no

本篇内容介绍了“c++怎么实现加一运算”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Plus One 加一运算

Given a non-empty array of decimal digits representing a non-negative integer, increment one to the integer.

The digits are stored such that the most significant digit is at the head of the list, and each element in the array contains a single digit.

You may assume the integer does not contain any leading zero, except the number 0 itself.

Example 1:

Input: digits = [1,2,3]
Output: [1,2,4]
Explanation: The array represents the integer 123.

Example 2:

Input: digits = [4,3,2,1]
Output: [4,3,2,2]
Explanation: The array represents the integer 4321.

Example 3:

Input: digits = [0]
Output: [1]

Constraints:

  • 1 <= digits.length <= 100

  • 0 <= digits[i] <= 9

将一个数字的每个位上的数字分别存到一个一维向量中,最高位在最开头,我们需要给这个数字加一,即在末尾数字加一,如果末尾数字是9,那么则会有进位问题,而如果前面位上的数字仍为9,则需要继续向前进位。具体算法如下:首先判断最后一位是否为9,若不是,直接加一返回,若是,则该位赋0,再继续查前一位,同样的方法,知道查完第一位。如果第一位原本为9,加一后会产生新的一位,那么最后要做的是,查运算完的第一位是否为0,如果是,则在最前头加一个1。代码如下:

C++ 解法一:

class Solution {public:    vector<int> plusOne(vector<int> &digits) {        int n = digits.size();        for (int i = n - 1; i >= 0; --i) {            if (digits[i] == 9) digits[i] = 0;            else {                digits[i] += 1;                return digits;            }        }        if (digits.front() == 0) digits.insert(digits.begin(), 1);        return digits;    }};

Java 解法一:

public class Solution {    public int[] plusOne(int[] digits) {        int n = digits.length;        for (int i = digits.length - 1; i >= 0; --i) {            if (digits[i] < 9) {                ++digits[i];                return digits;            }            digits[i] = 0;        }        int[] res = new int[n + 1];        res[0] = 1;        return res;    }}

我们也可以使用跟之前那道 Add Binary 类似的做法,将 carry 初始化为1,然后相当于 digits 加了一个0,处理方法跟之前那道题一样,参见代码如下:

C++ 解法二 :

class Solution {public:    vector<int> plusOne(vector<int>& digits) {        if (digits.empty()) return digits;        int carry = 1, n = digits.size();        for (int i = n - 1; i >= 0; --i) {            if (carry == 0) return digits;            int sum = digits[i] + carry;            digits[i] = sum % 10;            carry = sum / 10;        }        if (carry == 1) digits.insert(digits.begin(), 1);        return digits;    }};

Java 解法二 :

public class Solution {    public int[] plusOne(int[] digits) {        if (digits.length == 0) return digits;        int carry = 1, n = digits.length;        for (int i = digits.length - 1; i >= 0; --i) {            if (carry == 0) return digits;            int sum = digits[i] + carry;            digits[i] = sum % 10;            carry = sum / 10;        }        int[] res = new int[n + 1];        res[0] = 1;        return carry == 0 ? digits : res;    }}

“C++怎么实现加一运算”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: C++怎么实现加一运算

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++怎么实现加一运算
    本篇内容介绍了“C++怎么实现加一运算”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Plus One 加一运算Given a no...
    99+
    2023-06-20
  • C++实现LeetCode(66.加一运算)
    [LeetCode] 66. Plus One 加一运算 Given a non-empty array of decimal digits repre...
    99+
    2024-04-02
  • Java怎么用位运算实现加减运算
    这篇文章主要讲解了“Java怎么用位运算实现加减运算”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么用位运算实现加减运算”吧!思路分析先分析如何用位运算实现加法运算。示例假设a=2...
    99+
    2023-07-04
  • c++重载运算符怎么实现复数加减
    要实现复数的加减操作符重载,可以重载加法运算符"+“和减法运算符”-"。以下是一个示例代码: #include ...
    99+
    2024-03-15
    c++
  • C#怎么实现运算符重载
    本篇内容介绍了“C#怎么实现运算符重载”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!运算符重载的实现下面的程序演示了完整的实现:using&...
    99+
    2023-06-17
  • C#怎么实现计算器四则运算
    这篇文章主要讲解了“C#怎么实现计算器四则运算”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#怎么实现计算器四则运算”吧!初始化,实现四则运算using System;using...
    99+
    2023-06-29
  • PHP中怎么使用位运算实现加减乘除运算
    这篇文章主要介绍了PHP中怎么使用位运算实现加减乘除运算,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。计算机最基本的操作单元是字节,一个字节由8个位组成,一个位只能存储一个0...
    99+
    2023-06-20
  • C#中怎么实现运算符重载
    本篇文章给大家分享的是有关C#中怎么实现运算符重载,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。什么是C#运算符重载?所谓运算符重载,就是对已有的运算符重新进行定义,赋予其另一...
    99+
    2023-06-18
  • C++中怎么实现重载运算符
    C++中怎么实现重载运算符,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一。重载运算符的时机1。需要在定义的对象间相互赋值时,重载赋值运算符2。需要在数字类型增...
    99+
    2023-06-17
  • php怎么实现加减乘除的运算
    php实现加减乘除运算的方法:1、创建一个php示例文件;2、定义两个变量为“$x”和“$y”;3、通过“$x+$y”,“$x-$y”,“$x*$y”及“$x/$y”公式实现加减乘除运算;4、使用“echo”输出运算结果即可。本教程操作系统...
    99+
    2023-05-14
    php
  • MongoDB中怎么实现加减乘除运算
    本篇文章给大家分享的是有关MongoDB中怎么实现加减乘除运算,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.$add操作符(+)1.1 语...
    99+
    2024-04-02
  • C#中怎么通过运算符重载实现复数运算
    今天就跟大家聊聊有关C#中怎么通过运算符重载实现复数运算,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C#运算符重载实现复数运算的由来:函数的重载——同名函数,不同的参数(包括参数个...
    99+
    2023-06-18
  • c语言重载运算符怎么实现
    C语言不支持重载运算符,只能通过函数来实现类似的功能。例如,可以通过定义一个函数来代替重载的加法运算符: #include ty...
    99+
    2023-10-25
    c语言
  • 怎么用python实现一个指数运算
    本篇内容主要讲解“怎么用python实现一个指数运算”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用python实现一个指数运算”吧!这个题目有很简单,就是实现一个指数运算方法,但是对于递归...
    99+
    2023-06-02
  • 一元运算符怎么利用Java实现
    这篇文章给大家介绍一元运算符怎么利用Java实现,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一元运算符,也叫单项算符,一目运算符,一元算符 ,英文名字:UnaryOperator。描述:接受一个参数为类型T,返回值类...
    99+
    2023-05-31
    java 一元运算符 ava
  • C++重载运算符实现分数加减乘除
    本文实例为大家分享了C++重载运算符实现分数加减乘除的具体代码,供大家参考,具体内容如下 实现结果如下图所示: 代码如下所示: #include <iostream>...
    99+
    2024-04-02
  • Java利用位运算实现加减运算详解
    目录前言思路分析示例位运算进位初步结果去除加号整体思路加法代码实现减法实现减法分析减法代码实现总结前言 本文主要介绍如何使用位运算来实现加减功能,也就是在整个运算过程中不能出现加减符...
    99+
    2022-12-31
    Java位运算实现加减运算 Java 加减运算 Java位运算
  • javascript如何实现算术加法运算
    这篇文章主要介绍“javascript如何实现算术加法运算”,在日常操作中,相信很多人在javascript如何实现算术加法运算问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • C#算法中怎么实现各位相加
    本文小编为大家详细介绍“C#算法中怎么实现各位相加”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#算法中怎么实现各位相加”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。各位相加给定一个非负整数 num...
    99+
    2023-06-26
  • C++中怎么实现一个 kmp算法
    本篇文章给大家分享的是有关C++中怎么实现一个 kmp算法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C++ kmp算法模板参数说明const T *source 待匹配的字...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作