前段时间在知乎上看到一道题,是计算两个很大的数,一开始以为直接相加就行了,但是事情没那么简单
因为在c++中int类型有长度限制,所以在c++中不呢实现超过int类型长度限制的两个数直接相加
但是string类型就没有限制,可以尝试用string做加法,这样只需要写一个简单的加法计算算法就可以了。
接下来开始操作:
先试了一下果然不行。
又试了一下long long 类型
好像还是不行。
只有老老实实写算法了,其实也不难
大概思路就是我们小学的时候学的竖式加法,但是要防止在for循环中超出范围(其实string不用考虑这个)我们先对每个字符串进行补全(就像我们小学时做竖式运算时的对齐个位的操作),然后从后往前开始相加同时分为所相加的结果大于或等于10和小于10的两种情况分别操作进位(注意进位要在上一次循环结束下一次循环开始相加结束前清零)最后就是这段代码
这是运行结果
结果对了的。
计算机的题有时看似简单其实很复杂,因为计算机是个很笨但是很勤奋的孩子,只要细心引导他,他就会给你想要的结果。
本文所有内容来自互联网,如有侵权/不实内容请联系我们删除,联系邮箱postusb@foxmail.com
发布者:缘分,转转请注明出处:https://www.bjxdyg.com/life/245505.html