【两个无穷大的数相加】

news2024/11/22 6:49:50

两个无穷大的数相加

两个无穷大的数相加,因为int有限,哪怕用long int也不可能够,用string存,用手工算数的方式从右往左一位一位加,满10就进一。这样不管有多长,都能算出结果。

最近在做QT项目,所以用c++写的demo,用别的语言也是一样的,就一个for循环,从个位开始加,一直加到最高位。

举例:12345+234=?
看成:12345+00234
然后分别计算5+4,4+3,3+2,2+0,1+0,有进位就进位。

void MainWindow::on_pushButton_clicked()
{
    //将页面输入的两个无穷大的数拿出来
    QString edit1 = ui->lineEdit->text();
    QString edit2 = ui->lineEdit_2->text();

    //设置一个字符串拿来显示计算结果,将单个数相加的除去了进位的结果插入到字符串的第0位
    QString showNum ="";
    //用来存储单个数相加的除去了进位的结果
    int oneNum =0;
    //满10进位就置为1,否则就置为0,并且参与单个数相加
    int enter10 =0;
    //较长的字符串的长度
    int bigStrLength =0;
    //两个字符串的长度
    int edit1Length =edit1.length();
    int edit2Length =edit2.length();

    //如果第一个字符串比第二个字符串长,就把第一个字符串的长度存起来,并且在短的字符串的头部补0,补到长度和第一个字符串一样长。相反,就操作第二个字符串。
    if(edit1Length>edit2Length){
        bigStrLength=edit1Length;
        for (int f=0;f<edit1Length-edit2Length;f++) {
            edit2.insert(0,"0");
        }
    }else{
        bigStrLength=edit2Length;
        for (int f=0;f<edit2Length-edit1Length;f++) {
            edit1.insert(0,"0");
        }
    }

    //循环最长的字符串的长度,从个位数开始计算并且递减,直到循环到最高位,然后结束计算,得出结果。
    for (bigStrLength;bigStrLength>0;bigStrLength--) {
        //把第一个字符串的最右边的一个数拿出来
        QString u = edit1.mid(bigStrLength-1,1);
        //把第二个字符串的最右边的一个数拿出来
        QString o =edit2.mid(bigStrLength-1,1);
        //两个数相加,并且加上满十进一的进位
        oneNum = u.toUInt() + o.toInt(0) +enter10;
        //如果结果满十,就将进位置为1,否则就置为0
        if(oneNum>9){
            enter10=1;
        }else {
            enter10=0;
        }

        //把单个数的计算结果插入字符串的第一位,依次插入,直到计算完两个字符串的最后一位,得出完整的计算结果
        showNum.insert(0,QString::number(oneNum));
    }
    //把结果显示在界面
    ui->textBrowser->setText(showNum);

}

在这里插入图片描述

在这里插入图片描述

如果要限制输入,可以做如下设置,不过设置了之后,就受到IntValidator的限制,长度就不能无限输入了,只能输入int所支持的最大长度。
    QIntValidator  *IntValidator = new QIntValidator(this) ;
    //IntValidator->setRange(0, 255);//可以改成(-255,255),这样只能输入-255,255之间的数
    ui->lineEdit->setValidator(IntValidator);//这样只能输入整数
    ui->lineEdit_2->setValidator(IntValidator);
    ui->lineEdit->setPlaceholderText("请输入整数");//背景提示用户输入范围
    ui->lineEdit_2->setPlaceholderText("请输入整数");//背景提示用户输入范围

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

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

相关文章

荔枝集团战队斩获 2023 Amazon DeepRacer自动驾驶赛车企业总决赛冠军

6月27日&#xff0c;2023 Amazon DeepRacer自动驾驶赛车企业总决赛在上海决出了最终结果&#xff0c;荔枝集团“状元红”战队与Cisco、德勤管理咨询、北京辛诺创新、神州泰岳、敦煌网等12支队伍的竞逐中&#xff0c;在两轮比赛中成绩遥遥领先&#xff0c;最终斩获桂冠。而今年年…

【LeetCode热题100】打卡第28天:不同的二叉搜索树验证二叉搜索树对称二叉树

文章目录 【LeetCode热题100】打卡第28天&#xff1a;不同的二叉搜索树&验证二叉搜索树&对称二叉树⛅前言 不同的二叉搜索树&#x1f512;题目&#x1f511;题解 验证二叉搜索树&#x1f512;题目&#x1f511;题解 对称二叉树&#x1f512;题目&#x1f511;题解 【Le…

真人手办店值得投资吗?

最近一两年有一种专为普通人设计的真人手办已经开始风靡&#xff0c;很多城市都有了真人手办店的身影&#xff0c;不少人的家里也摆上了属于自己的真人手办&#xff0c;这些手办可以说就是缩小版的我们自己。 除了消费者对这个新生事物有兴趣&#xff0c;许多想要创业的年轻人也…

Prophet算法框架趋势模型、季节模型原理详解与应用实践

本文是在ChatGPT协助下完成&#xff0c;提高了写作速度和效率。 1. 趋势模型 1.1. 趋势模型概述 当我们谈论Prophet中的趋势模型时&#xff0c;我们可以将其理解为描述时间序列数据中整体趋势的一种方式。趋势模型可以告诉我们数据随着时间的推移是如何变化的&#xff0c;是…

Kubernetes Pod篇

Pod基础概念&#xff1a; Pod是kubernetes中最小的资源管理组件&#xff0c;Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的&#xff0c;例如&#xff0c;用于管理Pod运行的S…

Linux--通配结构:*

功能&#xff1a; 与字符匹配后&#xff0c;作用时的作用对象是与字符匹配的文件 示例&#xff1a; ①显示以.c结尾的文件 ②显示file开头的文件③强制&#xff08;f&#xff09;递归&#xff08;r&#xff09;删除以.c结尾的文件 ④删除该目录下的一切文件及目录

联想小新Pro16怎么重装Win10系统?联想小新Pro16重装系统Win10教程

如果您是联想小新Pro16的用户&#xff0c;并且想要重装Win10系统&#xff0c;那么您来对地方了&#xff0c;无论是出于系统崩溃、性能下降还是个人需求改变的原因&#xff0c;重新安装操作系统可以帮助您恢复电脑的正常运行和提升使用体验。以下小编将为您分享联想小新Pro16重装…

Linux内核中常用的C语言技巧详解

概要 Linux内核采用的是GCC编译器&#xff0c;GCC编译器除了支持ANSI C&#xff0c;还支持GNU C。在Linux内核中&#xff0c;许多地方都使用了GNU C语言的扩展特性&#xff0c;如typeof、__attribute__、__aligned、__builtin_等&#xff0c;这些都是GNU C语言的特性。 typeof…

python中,数组 nums[:] 和nums有何区别?

leetcode中有一道题。题目为&#xff1a; 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改…

对于超过最大宽度的文字 想要换行怎么解决

对于超过最大宽度的文字,你可以 1、使用CSS中的word-break属性来换行: .rich-text {word-break: break-all; } break-all 属性允许在字符串内的任何地方换行。 2、使用overflow-wrap属性:break-word 也允许在字符串的任何地方换行。 .rich-text {overflow-wrap: break-wo…

Blazor 自定义可重用基础组件之 InputString(InputText)

为避免命名冲突&#xff0c;将InputText改名为InputString&#xff0c;其实内部类型就是string。 <div class"d-flex"><label class"control-label w-auto mt-2"><b>Lable</b></label><div style"width:InputWidth…

数智化时代,国企人力资源创新突破与高质量发展

二十大以来&#xff0c;在全面建设社会主义现代化背景下&#xff0c;以更大的力度、更切实的措施推动国资国企改革&#xff0c;推动世界一流企业由“培育”转入“加快建设”阶段。历经三年行动&#xff0c;国有企业改革已经取得了令人瞩目的成就。 今年以来&#xff0c;国务院国…

JAVA麻将胡牌算法深度解析

目录 麻将的基本概念 麻将牌的构成 麻将的碰&#xff0c;杠&#xff0c;吃&#xff0c;听&#xff0c;胡 麻将胡牌条件 胡牌算法简介 选将拆分法 算法数据结构 构建数据结构 数据结构使用 牌花色的获取 获取某一花色的牌值 获取某一张牌相邻牌 算法代码实现 基础代…

word另存为pdf失败的原因及处理方法

我们知道&#xff0c;Word可以通过另存为方式直接保存为PDF&#xff0c;其原理其实跟打印机打印差不多&#xff0c;PDF就是一台虚拟的打印机&#xff0c;但有些同学反映word另存为pdf失败&#xff0c;可能的原因是什么呢&#xff1f;又该如何处理呢&#xff1f; word另存为pdf…

【Java|多线程与高并发】CAS以及ABA问题

文章目录 1. 什么是CAS2. ABA问题3. ABA问题的解决 1. 什么是CAS CAS&#xff08;Compare and Swap,“比较和交换”&#xff09;是一种并发编程中常用的原子操作&#xff0c;用于解决多线程环境下的数据竞争和并发访问问题。 CAS操作包含三个操作数&#xff1a;内存位置&#x…

【Git】 Git初相识

文章目录 1. Git的必要性1.1 提出问题1.2 解决问题1.3 注意事项 2. Git的安装2.1 kali下的安装2.3 Windows下的安装 3. Git的配置 1. Git的必要性 1.1 提出问题 在我们的学习或者工作中&#xff0c;经常会遇到一些比较难搞的上司或者老师&#xff0c;让我们交上去的文档改了又…

英伟达开发板学习系列---通过主机名称进行远程登录

1.前言 我们使用Jetson nx 的时候经常需要使用远程工具&#xff0c;而默认的网络配置IP地址采用动态分配&#xff0c;会造成IP地址不确定的问题&#xff0c;故我们可以设置hostname 唯一名字&#xff0c;通过hostname 进行远程连接。 2.通过主机名称进行登录 1.修改主机名称…

使用docker搭建mysql集群

一、技术架构 1、架构图 2、解说 mysql_1、mysql_2、mysql_3是一组主从模式,同理mysql_4、mysql_5、mysql_6也是一组主从模式从上面的图可以看出mysql_1和mysql_4是主节点,可以进行增删改查操作,但是子几点只能查询操作如果mysql_1节点出现问题了&#xff0c;有mysql_4节点组…

Python:使用prometheus-client提交数据到实现prometheus+ grafana数据监控

相关资料 prometheus文档&#xff1a;https://prometheus.io/grafana文档&#xff1a;https://grafana.com/grafana github: https://github.com/grafana/grafanaPyhton客户端https://pypi.org/project/prometheus-client/ 目录 1、使用Python提供数据源2、启动 prometheus3、…

eDNA暴露人类活动轨迹!你的DNA信息可能随时随地在泄露!

环境DNA&#xff08;environmental DNA, eDNA&#xff09;领域发展迅速&#xff0c;但人类eDNA的应用仍未得到充分利用和重视。eDNA分析的广泛应用将为病原体监测、生物多样性监测、濒危和入侵物种检测以及群体遗传学带来许多公认的好处。 佛罗里达大学野生动物疾病基因组学教…