首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

c++中整数的第一位和最后一位数字之和

在C++中,获取整数的第一位和最后一位数字之和可以通过以下步骤实现:

  1. 将整数转换为字符串类型,可以使用std::to_string()函数将整数转换为字符串。
  2. 获取字符串的第一个字符和最后一个字符,可以使用字符串的下标操作符[]来获取。
  3. 将获取的字符转换为数字类型,可以使用std::stoi()函数将字符转换为整数。
  4. 将第一个字符和最后一个字符的数字相加,得到它们的和。

下面是一个示例代码:

代码语言:txt
复制
#include <iostream>
#include <string>

int main() {
    int num = 12345;
    std::string numStr = std::to_string(num);
    int firstDigit = std::stoi(numStr.substr(0, 1));
    int lastDigit = std::stoi(numStr.substr(numStr.length() - 1, 1));
    int sum = firstDigit + lastDigit;
    
    std::cout << "The sum of the first and last digit of " << num << " is " << sum << std::endl;
    
    return 0;
}

在这个示例中,我们将整数12345转换为字符串"12345",然后获取字符串的第一个字符'1'和最后一个字符'5',将它们转换为整数类型并相加,得到6作为结果。

对于这个问题,腾讯云的相关产品和链接地址可能与云计算领域无关,因此不提供相关推荐。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C++Java交换两个整数方法

一、C++交换两个整数4种方式 在CC++交换两个整数有多种方式,我想到常用方法有以下4种: 1、使用引用传参 2、使用指针传参 3、利用位异或运算符^特性,并结合引用传参 4、利用加减减运算符...,并结合引用传参 当然在C/C++以及Java中直接使用int作为形参进行值传递是无法交换两个整数,相关C++测试代码如下: // swap1.cpp #include int...可以看出直接使用int作为形参传递是无法交换两个整数。...Java交换两个整数值 Java由于不存在引用传参指针传参,交换两个整数有以下两种方法: 1、通过一个中间变量进行交换 2、使用位异或运算符 3、使用加减减运算操作 1、使用中间变量交换两个整数...但是在Java中使用上述两种方法交换两个整数,不太好封装成方法,这点可以通过数组传参来实现,这个可以参考我很早以前一篇博客有关Java两个整数交换问题

1.6K20

leetcode 66 | 加一

给定一个由整数组成非空数组所表示非负整数,在该数基础上加一。 最高位数字存放在数组首位, 数组每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。...分析:这道题是不是看第一眼是不是就想把数组转化为整数,然后再用这个整数加1,再将这个结果转化为数组~那可就调入这道题陷阱里了,这样做是不行,因为这个整数可以很大,大超过int范围,甚至超过long...我们可以分情况讨论,第一,我们让数组最后一个数加1,即个位加1,如果小于10,则说明不存在进位问题。...=0时,就继续上前进位,本身保留与进位相加结果之和个位即可,最后判断result[0],即第一位是否为0,若不为0,则直接返回result,若为0,则返回从索引1到索引digits.length子串即可...digitsSize - 1; result[i] = digits[i] + 1; for (i; i>0; i--) { if (result[i] == 10)//判断不是第一位

62430

DP专题8 | 骨牌摆放问题 POJ 2411(状态压缩DP)

状态压缩通常是使用一个整数来表示一个集合,比如整数3,二进制表示为11,第一位状态为1,第二位状态为1,数字2二进制表示为10,第一位状态为1,第二位状态为0,数字1二进制表示为01,第一位为0...,第二位为1,数字0二进制可以表示为00,两位状态都是0。...状态压缩DP:采用状态压缩算法DP问题,也就是用整数表示集合,然后将该整数作为DP一个维度来进行DP状态转移。 ? 希望理解更深童鞋能够踊跃发言指正~ ?...首先定义状态转移方程: f(i, j) = f(i-1, k)之和,j, k属于[0,1<<m) 且满足 j&k==0 满足 j|k是有连续个0状态 f(i,j)表示第i行状态为j时,前i行方案总数...n, int m) { for (int i = 0; i < 1 << m; ++i) { int cnt = 0, has_odd = 0; // 遍历m一位

1.4K20

回文数字

回文数字 Description 观察数字:12321,123321 都有一个共同特征,无论从左到右读还是从右向左读,都是相同。这样数字叫做:回文数字。...本题要求你找到一些5位或6位十进制数字。满足如下要求: 该数字各个数位之和等于输入整数。 Input 一个正整数 n (10<n<100), 表示要求满足数位。...Output 若干行,每行包含一个满足要求5位或6位整数数字按从小到大顺序排列。...如果没有满足条件,输出:-1 解析:枚举每一位数,因为是回文数,前一半后一半相同,所以5位数6位数都只需要一个O(n^3)时间复杂度,n为10。...需要注意地方是除了第一位其他位是可以等于0

23410

每日算法系列【LeetCode 357】计算各个位数不同数字个数

题目描述 给定一个非负整数 n ,计算各位数字都不同数字 x 个数,其中 。...示例1 输入: 2 输出: 91 解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内所有数字。...题解 这题要求所有数位数字都不相同数字个数,那么我们可以将答案分成不同长度。...方法1 对于长度为 n 数字第一位取值有 1~9 一共 9 种情况,而后面 n - 1 位可以从 0~9 随机取出 n - 1 个不同数字,然后随机排列。...因为要和第一位不同,所以后面的数字选择只有 9 种情况,所以方案数是排列数 。 然后一直累到长度为 1 数字最后还有个特例,就是 0 ,它是首位可以为 0 唯一情况。 所以最终答案就是 。

76830

【C语言刷题——Leetcode12道题】带你起飞,飞进垃圾堆

统计各位数字之和为偶数整数个数 2278....来源:力扣(LeetCode) 从后往前遍历更加方便,只要最后一位(相对而言,当前最后一位)出现奇数说明这个数就是奇数了>,下面直接上手代码: 1979....输出:3 解释: nums 中最小数是 3 nums 中最大数是 3 3 3 最大公约数是 3 来源:力扣(LeetCode) 解题思路:将数组排完序之后,第一位就是最小元素,...统计各位数字之和为偶数整数个数 给你一个正整数 num ,请你统计并返回 小于或等于 num 且各位数字之和为 偶数 整数数目。...正整数 各位数字之和 是其所有位上对应数字相加结果。 示例 1: 输入:num = 4 输出:2 解释: 只有 2 4 满足小于等于 4 且各位数字之和为偶数。

75920

漫画:位运算技巧整理汇总+一道被嫌弃题目

好了,废话就到这里,今天将分享一道很简单,并且总被Diss题目: 01 PART 两数之和 这个题很老了,拿出来给不会同学看一看,会直接跳过。...(值得一说是,这个题目在国外上,有2000个dislike,可以看到大家嫌弃!) 第268题:不使用运算符 + - ,计算两整数 a 、b 之和。 ?...(这个技巧可以用来检测 2幂,或者检测一个整数二进制 1 个数,又或者别人问你一个数变成另一个数其中改变了多少个bit位,统统都是它) 5、i+(~i)=-1,i 取反再与 i 相加,相当于把所有二进制位设为...(如果两个数都是正数,则二进制第一位均为0,x^y=0;如果两个数都是负数,则二进制第一位均为1;x^y=0 如果两个数符号相反,则二进制第一位相反,x^y=1。...想复习一下其他位运算题目的,可以看: 漫画:位运算系列篇(缺失数字) 漫画:位运算系列篇(只出现一次数字) 漫画:位运算系列篇(只出现一次数字 - 进阶版) 漫画:三分钟学习一道位运算面试题

42110

刷题:数翻转

翻转 题目描述: 题目描述:所谓数翻转就是将一个数第一位变成最后一位,第二位变成倒数第二位……。 比如1234经过翻转后变成了4321。...当然了,翻转后数字是不能有前导零,如100翻转后得到1, 这就意味着21可能是由12或者120或者1200等翻转得到。...现在给出两个数字AB,它们各自翻转后得到是C,请你输出C翻转后结果。 输入:第一行输入一个正整数T(1 <= T <= 10),表示有T组测试数据。...对于每组测试数据:输入两个整数A、B(1 <= A 、B<= 10^5)。 输出:对于每组测试数据输出一行,每行包括一个整数,表示最终结果 (最终结果不能有前导零,如03是不被允许)。...样例: 输入样例 1 3 24 1 4358 754 305 794 输出样例 1 34 1998 1 思路 本题难点就是如何将一个整数a进行翻转?并且翻转数字a后对于前导零怎么处理?

35910

C语言经典编程题100例 81~90

程序分析: 这个问题其实是一个排列组合问题,设这个数为 sun=a1a2a3a4a5a6a7a8,a1-a8 表示这个数某位数值,当一个数最后一位为奇数时,那么这个数一定为奇数,不管前面几位是什么数字...如果最后一位数为偶数,则这个数一定为偶数。 a1-a8可以取 0-7 这个八个数字,首位数字不为 0。...从该数为一位数到该数为8位数开始统计奇数个数: 1.当只有一位数时也就是该数最后一位,奇数个数为4 2.当该数为两位数时,奇数个数为4*7=28 3.当该数为三位数时,奇数个数为:487=224 ...... 8.当该数为八位数时,奇数个数为:4888888*7(依次为最后一位第一位) 参考代码: #include int main(int agrc, char*agrv[]) {...: 1 * 2 ** 3 *** 89、某个公司采用公用电话传递数据,数据是四位整数,在传递过程是加密,加密规则如下:每位数字都加上5,然后用除以10余数代替该数字,再将第一位第四位交换,第二位第三位交换

1.4K10

万字长文!位运算面试看这篇就够了!

以下是最终整合后目录,列出全部内容都应该进行掌握: 位运算基础 位运算奇淫技巧 两数之和幂 一个数 只出现一次数字Ⅰ 只出现一次数字Ⅱ 01 PART 位运算基础 程序所有数在计算机内存中都是以二进制形式储存...,位运算就是直接对整数在内存二进制位进行操作。...(如果两个数都是正数,则二进制第一位均为0,x^y=0;如果两个数都是负数,则二进制第一位均为1;x^y=0 如果两个数符号相反,则二进制第一位相反,x^y=1。...(值得一说是,这个题目在国外上,有2000个dislike,可以看到大家嫌弃!) 第268题:不使用运算符 + - ,计算两整数 a 、b 之和。...第191题:编写一个函数,输入是一个无符号整数,返回其二进制表达式数字位数为 ‘1’ 个数(也被称为汉明重量)。

1.2K20

C++】vector OJ练习

两个相同整数异或结果为0;0任何整数异或结果还是这个数本身。 所以可以怎么搞,定义一个变量初始值为0,遍历数组,让它每一个元素进行异或,最终结果就是数组只出现一次那个数字。...然后只需把每行第一个最后一个元素初始化为1 ,中间剩余元素是不是就是它上一行元素上一行前一个元素相加啊。...是不是说明5二进制序列第一位6二进制序列第一位是不相等啊,那肯定一个是1 ,一个是0 ,那我们就可以把数组里所有数字第一位是0分到一组,第一位是1 分到一组,那这样56肯定不在同一组...当然,这里不止可以选择用第一位去分组,这里5跟6 二进制序列第二位是不是也不同啊,你也可以根据第二位是0还是1去分组。...只出现一次数字 II 题目链接: link 思路讲解 这道题还是让我们找出数组只出现一次那个数字,但是与第一题不同是,其余数字均出现三次。

9310

计算机程序思维逻辑 (4) - 整数二进制表示与位运算

但其实123表示1*(10^2) + 2*(10^1) + 3*(10^0),(10^2表示10二次方),它表示是各个位置数字含义之和,每个位置数字含义与位置有关,从右向左,第一位乘以100次方...换句话说,每个位置都有一个位权,从右到左,第一位为1,然后依次乘以10,即第二位为10,第三位为100,依次类推。...正整数二进制表示 正整数二进制表示与此类似, 只是在十进制,每个位置可以有10个数字,从0到9,但在二进制,每个位置只能是0或1。...位权概念是类似的,从右到左,第一位为1,然后依次乘以2,即第二位为2,第三位为4,依次类推。...查看整数二进制十六进制表示 在Java,可以方便使用IntegerLong方法查看整数二进制十六进制表示,例如: int a = 25; System.out.println(Integer.toBinaryString

96490

n数之和题目要类比——LeetCode题目18:四数之和

原题描述 + 给定一个包含 n 个整数数组 nums 一个目标值 target,判断 nums 是否存在四个元素 a,b,c d ,使得 a + b + c + d 值与 target 相等...找出所有满足条件且不重复四元组。 注意:答案不可以包含重复四元组。...我们再回顾一下三数之和基本思路: 1. 先将数组按照升序排序; 2. 以当前位置 作为三数之中第一个数字(最小数字),寻找他其他两个伙伴,这两个伙伴一定处于 之后。...我们使用两个可移动指针 分别指向 最后一位数字,因为数组按升序排序,所以有两个基本事实:右移 会使增大,左移 会使减小。...——LeetCode题目16:最接近三数之和 复杂度分析 + 时间复杂度: 空间复杂度: C++参考代码 + class Solution { public: vector<vector

78530

一天一大 leet(回文数)难度:简单 DAY-10

题目(难度:简单): 判断一个整数是否是回文数。回文数是指正序(从左向右)倒序(从右向左)读都是一样整数。...如果是负数一定是 false 分利用数学运算符得到数字第一位最后一位: 第一位 121 / 100 -> 1 最后一位 121 % 10 -> 1 循环后重置数据:121 % 100 -> 21...// 同样地,如果数字最后一位是 0,为了使该数字为回文, // 则其第一位数字也应该是 0 // 只有 0 满足这一属性 if (x < 0 || (x % 10 === 0 && x...,我们可以通过 revertedNumber/10 去除处于数字。...// 例如,当输入为 12321 时,在 while 循环末尾我们可以得到 x = 12,revertedNumber = 123, // 由于处于数字不影响回文(它总是与自己相等),所以我们可以简单地将其去除

34120

LeetCode - 两数相加

/ 题目描述: 给出两个 非空 链表用来表示两个非负整数...其中,它们各自位数是按照 逆序 方式存储,并且它们每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新链表来表示它们。...您可以假设除了数字 0 之外,这两个数都不会以 0 开头。...两个链表同时从头往后遍历,每次都计算两个链表相加,然后carry表示进位, sum表示当前节点之和,下一个进位为sum/10,其实这么算还可以再改进下,因为最大进位也就是1,假设第一位是9+9,进位...=1,第二位是9+9+1=19,进位还是1,所以这里只需要判断sum>=10就可以知道进位=1了 然后计算当前节点值,如果进位=1,则直接sum-10,否则就是sum,又加速了一点 最后就是将链表指针后移了

65650
领券