iOS 大数相加

大数相加的技术点在于进位(两数相加大于10之后进位)

思路如下:

1.从右往左便利,依次去除两个数M和N的个位数、十位数、百位数~~~相加

2.如果M遍历完了,N还没完,那么M用0作为位数上的加数:

代码如下:

- (void)bigNumAdd:(NSMutableArray *)arrayA ArrayB:(NSMutableArray *)arrayB
{NSString * resString = @"";//倒叙循环int i = (int)arrayA.count - 1;int j = (int)arrayB.count - 1;//进位.两个数相加,大于10会进一位, 它的值只能是1或0int carry = 0;while (i >= 0 || j >= 0){//往右遍历,依次先取出个位数、十位数、百位数……/*三目运算法,如果i大于等于0,说明arrayA里还有值没遍历,如果arrayA里没有值了就直接赋0arrayA = [1,2,3],arrayB = [4,5,6,7], 遍历到第4遍,i=-1,j = 0,所以此时num1=0*/int num1 = i >= 0 ? [arrayA[i] intValue] : 0;int num2 = j >= 0 ? [arrayB[j] intValue] : 0;int sum = num1 + num2 + carry;if (sum >= 10){//两数相加,大于10,需保留个位数,向前进一位sum -= 10;carry = 1;}else{carry = 0;}resString = [NSString stringWithFormat:@"%d%@",sum,resString];NSLog(@"resString=11=%@",resString);//本次遍历结束之后,需要对i和j往左移动一位i--;j--;}//如果在所有的遍历都结束后,carry 还等于1.说明最后一次加法大于10,向前进1,此时我们还需要再拼接一个1if (carry == 1){resString = [NSString stringWithFormat:@"%d%@",carry,resString];}NSLog(@"最后的结果==%@",resString);
}//调用
- (void)viewDidLoad 
{[super viewDidLoad];NSString * stringA = @"123456";NSString * stringB = @"456789";[self bigNumAdd:[self stringTransArray:stringA] ArrayB:[self stringTransArray:stringB]];
}//将字符串转为数组
- (NSMutableArray *)stringTransArray:(NSString *)str
{NSMutableArray * array = [[NSMutableArray alloc]init];for (int i = 0; i < str.length; i ++){unichar ch = [str characterAtIndex:i];NSString * charStr = [NSString stringWithFormat:@"%C",ch];//添加[array addObject:charStr];}return array;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/57167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建工具类之获取SqlSession

我们在编写后端程序时&#xff0c;每次想运行一个SQL语句&#xff0c;就需要创建一个SqlSession&#xff0c;因此我们可以封装一个方法&#xff0c;来简化我们的操作。 一般我们需要先在src/main/java下建立一个utils包&#xff0c;专门用来存放各种方法。后期我们还需要其他的…

ArchLinux VSCode 1.94.2无法安装or更新解决办法

此方法参考了这篇博客https://www.debugpoint.com/failed-connect-raw-githubusercontent-com-port-443/#google_vignette 某一次paru后&#xff0c;一直报错503什么的&#xff0c;在archlinux官网看到pacman安装的是个Open VSX版本的&#xff0c;是Arch官方的版本&#xff0c;…

Postman中的form-data 和 JSON 的区别

在使用 Postman 进行 API 测试时&#xff0c;form-data 和 JSON 是两种常用的请求体格式&#xff0c;它们有以下几个主要区别&#xff1a; 1. 数据格式 form-data: 主要用于表单数据的提交&#xff0c;适合文件上传和键值对的数据传递。数据以键值对的形式编码&#xff0c;类似…

【Vue3】将 Element Plus 引入 Vue3 项目

前言 在 Vue3 项目中使用 Element Plus 可以为项目提供丰富的 UI 组件和交互体验。下面将介绍如何将 Element Plus 引入 Vue3 项目中。 步骤 安装 Element Plus 首先需要通过 npm、yarn 或 pnpm 安装 Element Plus 包。可以选择其中一种方式进行安装。 # NPM $ npm install…

Centos7搭建minio对象存储服务器

Centos7搭建minio对象存储服务器 安装二进制程序配置服务文件 安装二进制程序 参考&#xff1a;https://segmentfault.com/q/1010000042181876 minio中国版&#xff1a;https://www.minio.org.cn/download.shtml#/linux # 下载二进制程序 wget https://dl.min.io/server/min…

机器人学 目录

目录 【机器人学】1-1.六自由度机器人运动学正解 【附MATLAB代码】 【机器人学】1-2. MATLAB机器人工具箱的安装与问题处理 【机器人学】1-3.六自由度机器人工作空间 【附MATLAB代码】 【机器人学】2-1.六自由度机器人运动学逆解【附MATLAB机器人逆解代码】 【机器人学】3…

从MySQL到OceanBase离线数据迁移的实践

本文作者&#xff1a;玉璁&#xff0c;OceanBase 生态产品技术专家。工作十余年&#xff0c;一直在基础架构与中间件领域从事研发工作。现负责OceanBase离线导数产品工具的研发工作&#xff0c;致力于为 OceanBase 建设一套完善的生态工具体系。 背景介绍 在互联网与云数据库技…

R实验——logistic回归、LDA、QDAKNN

数据集介绍&#xff1a; mpg&#xff0c;miles per gallon即油耗&#xff0c;这个数据集来自卡内基梅隆大学维护的StatLib库。1983年美国统计协会博览会使用了该数据集。这个数据集是对StatLib库中提供的数据集稍加修改的版本。根据Ross Quinlan(1993)在预测属性“mpg”中的使…

vuex模块化使用

正常使用&#xff1a; // src/store/index.jsimport Vue from vue; import Vuex from vuex;Vue.use(Vuex);export default new Vuex.Store({state: {count: 0, // 一个简单的状态示例},mutations: {increment(state) {state.count;},decrement(state) {state.count--;},},acti…

【Linux报错】为什么“userdel 某用户”,这个用户还存在于家目录中?

你删除一个用户&#xff0c;却在 /home/ 家目录下还看到该用户家目录文件&#xff0c;是因为&#xff1a; 使用 userdel 命令来删除一个用户&#xff1a;默认情况下&#xff0c;该用户的主目录&#xff08;通常位于/home/username&#xff09;不会被自动删除。这是因为userdel有…

超硬核!大模型算法岗面试必问100题,我说的,不信就来看看

大模型算法岗常见面试题100道 *一、基础篇* 1、目前主流的开源模型体系有哪些&#xff1f; Transformer体系&#xff1a;由Google提出的Transformer 模型及其变体&#xff0c;如BERT、GPT 等。PyTorch Lightning&#xff1a;一个基于PyTorch的轻量级深度学习框架&#xff0c;…

如何将 Docker 镜像的 tar 文件迁移到另一台服务器并运行容器

实验室项目共建人&#xff1a;周凌飞、武正乔、杨霄汉 特别鸣谢&#xff1a;bilibili 博主 老韩一米九、一堂 杨国帅 提供设备部署以及上线指导 本博客部分内容由kimi生成&#xff0c;鸣谢&#xff1a;吴润生 迭代生成式AI提示词思考模型 在 Docker 容器化的世界里&#xf…

弱口令与命令爆破+DVWA靶场+docker+ARL+Fofa+weakpass

关于弱口令与命令爆破、DVWA靶场、Docker、ARL、Fofa和weakpass&#xff0c;以下是一些关键信息&#xff1a; 弱口令与命令爆破&#xff1a;弱口令指的是容易被攻击者猜测或被破解工具破解的口令。例如&#xff0c;使用单字、家族名称、太短的密码或可预测的模式&#xff08;如…

某科技——北京——国护蓝中研判岗

文章目录 所面试的公司&#xff1a;某科技所在城市&#xff1a;北京面试职位&#xff1a;国护蓝中研判岗面试过程&#xff1a; 面试官的问题&#xff1a;1、面试官先就是很常态化的让我做了一个自我介绍2、自我介绍不错&#xff0c;听你讲熟悉TOP10漏洞&#xff0c;可以讲下自己…

开源限流组件分析(三):golang-time/rate

文章目录 本系列前言提供获取令牌的API数据结构基础方法tokensFromDurationdurationFromTokensadvance 获取令牌方法reverseN其他系列API 令人费解的CancelAt是bug吗 取消后无法唤醒其他请求 本系列 开源限流组件分析&#xff08;一&#xff09;&#xff1a;juju/ratelimit开源…

Java之继承抽象类用法实例(三十一)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

一次文件重写后,文件修改时间未发生变化的原因

昨天用python写了一个脚本&#xff0c;用于统计店铺的某些数据&#xff0c;然后将数据存储在文本里&#xff0c;定时每天早上执行。 昨天傍晚写完的&#xff0c;执行了一下&#xff0c;执行完成后&#xff0c;此时文本修改时间为2024-10-22 18:00。 早上来公司一看&#xff0…

git命令笔记(速查速查)

git命令功能总结 1.创建git的本地仓库2. 配置本地仓库(name和email地址)3. 工作区、版本库、暂存区、对象区3.1 add, commit3.2 打印提交日志3.2 修改文件 4.版本回退&#xff08;git reset&#xff09;5. 撤销修改&#xff08;在push之前撤销&#xff09;6.删除版本库中的文件…

SQL Injection | SQL 注入分类 —— 查询方式

关注这个漏洞的其他相关笔记&#xff1a;SQL 注入漏洞 - 学习手册-CSDN博客 在进行 SQL 注入攻击时&#xff0c;如果目标服务器的后端 SQL 查询不返回任何结果&#xff08;即无回显&#xff09;&#xff0c;我们可能需要采用 SQL 盲注技术来进行进一步的测试。盲注是一种在无法…

SSM框架学习(七、MyBatis-Plus高级用法:最优化持久层开发)

目录 一、MyBatis-Plus快速入门 1.简介 2.快速入门 二、MyBatis-Plus核心功能 1.基于Mapper接口CRUD &#xff08;1&#xff09;Insert 方法 &#xff08;2&#xff09;Delete方法 &#xff08;3&#xff09;Update 方法 &#xff08;4&#xff09;Select方法 2.基于Serv…