日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

给定 2 个正整数 a, b,a 和 b 最多可能有 40 位,求出 a + b 的和(C语言实现)

發(fā)布時(shí)間:2025/5/22 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 给定 2 个正整数 a, b,a 和 b 最多可能有 40 位,求出 a + b 的和(C语言实现) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近參加一個(gè)編程比賽,里面有個(gè)一些題庫,這個(gè)題目就是其中之一.

當(dāng)然,如果想鍛煉自己的編程水平,可以去lintcode或者其他的網(wǎng)站上去刷題.

自信滿滿的我看到花了一個(gè)多小時(shí)才寫出來,實(shí)在是汗顏.

本來實(shí)現(xiàn)使用string,畢竟是使用c++編程.沒想好怎們寫,就沒有采用.

?

?

題目描述:

給定 2 個(gè)正整數(shù) a, b,a 和 b 最多可能有 40 位,求出 a + b 的和。

輸入描述:

兩個(gè)正整數(shù) a, b,a 和 b 最多可能有 40 位。一行表示一個(gè)數(shù)。

輸出描述:

a + b 的和。

樣例輸入:

11111111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222

樣例輸出:

3333333333333333333333333333333333333333333333333333333333333333333

?

實(shí)現(xiàn)的原理很簡(jiǎn)單,就是對(duì)齊.把字符串的位與位對(duì)齊.

把對(duì)齊的部分相加,然后在處理沒有對(duì)齊的部分

#include <iostream> #include <stdlib.h> #include <string.h> using namespace std; char * addChar(char *add1,char *add2,char *sum,int * carry); int main() { char num[40] = {} ; char num2[40] = {} ;char sum[40] = {} ; cin >> num ;cin >> num2 ;//數(shù)字進(jìn)行對(duì)齊if(strlen(num) == strlen(num2)){int carry = 0;addChar(num,num2,num,&carry);cout << num;return 0;}if(strlen(num) > strlen(num2)) {//num大 int sub = strlen(num)-strlen(num2);int carry = 0;char *p = num + sub;addChar(num2,p,p,&carry);cout << num << endl;}else{int sub = strlen(num2)-strlen(num);int carry = 0;char *p = num2 + sub;addChar(num,p,p,&carry);cout << num2 << endl;} } //相加 char * addChar(char *add1,char *add2,char *sum,int * carry) {if(strlen(add1) == strlen(add2)){for(int i = strlen(add1) - 1;i>=0;i--){//48-57sum[i] = add1[i] + add2[i] - 48 + *carry;if(sum[i] > 57){sum[i] -= 10;*carry = 1;}else{*carry = 0;}}return sum;} else{cout << "erro ,無法相加"<<endl;return NULL; } }

  

?

轉(zhuǎn)載于:https://www.cnblogs.com/qiny1012/p/9385443.html

總結(jié)

以上是生活随笔為你收集整理的给定 2 个正整数 a, b,a 和 b 最多可能有 40 位,求出 a + b 的和(C语言实现)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。