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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

强行刷段位第九天

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 强行刷段位第九天 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天感覺感冒基本好了。

就是還有鼻涕。

這個博客不像是用來記錄刷題的,好像是用來記錄感冒歷程的(笑哭)

就當寫日記了。。。反正沒什么人看~

?

洗了個頭,掃了個地。

該買一些洗發水什么的了,這回病好了,抽時間要去買點東西了。

現在感覺渾身充滿了力量~又要開始間歇性躊躇滿志了!

想過年前拔牙,這樣過年就可以少吃點了。。。

?

突然有點舍不得減掉我的頭發了。。。

因為前兩天買了個帽子,本來是為了萬一剪頭發了不好看,可以戴著擋一擋。

結果發現這個帽子長卷發戴著更合適一點。。。

?

不管了~年前肯定是要剪的,作為2019的斷舍離~

?

感冒好了話都變多了。。。

做題做題。


高精度第一題:

題目:

給出兩個正整數A和B,計算A-B的值。保證A和B的位數不超過500位。

輸入描述:

讀入兩個用空格隔開的正整數

輸出描述:

輸出A-B的值

樣例輸入:

3 12

樣例輸出:

-9

數據范圍及提示:

兩個正整數的位數不超過500位

我的答案:

這道題寫完通過的時候我一臉呆滯。。。

就。。。通過了???

我明明只是要提交一下,獲取一下出錯用例,然后接著寫啊。。。

我明明沒有寫0000001這種情況的處理啊。。。

好吧。。。

本著認真嚴謹的態度,我把去除0的工作加上了之后再次提交,成功通過,撒花花~

?

頭一次寫高精度,開始還是有點蒙,不過順著字符串這個思路,暴力模擬下去還是不難想到的。

就醬。

?

哦,對,之前出了個小菜雞沒見過的錯誤。說我的minus函數ambiguous。

查了一下原來是minus和庫函數重名,隨手改了一下名字就通過啦。以后長記性~

#include <iostream> #include <string.h> using namespace std; //測試數據:19987787889 98776665int mark(char a[],char b[],int alen,int blen) //需要輸出負號則返回1 {int res=0;int i=0;if(alen<blen) res=1;if(alen==blen){for(i=0;i<alen;i++){if(a[i]<b[i]){res=1;break;}}}return res; }void minuss(char a[],char b[],int alen,int blen) //保障 a>b {int c[500];int arear=alen-1;int brear=blen-1;int i=0;int flag=0;while(arear>=0 && brear>=0){if(a[arear]>=b[brear]) c[flag++]=a[arear]-b[brear];else{c[flag++]=10-b[brear]+a[arear];a[arear-1]--;}arear--;brear--;}while(arear>=0){if(a[arear]>='0') c[flag++]=a[arear]-'0';else{c[flag++]=10-'0'+a[arear];a[arear-1]--;}arear--;}flag--;while(c[flag]==0){flag--;}for(i=flag;i>=0;i--){cout<<c[i];} } int main() {char a[500];char b[500]; cin>>a>>b;int alen=0,blen=0,flag=0;alen=strlen(a);blen=strlen(b);flag=mark(a,b,alen,blen); //輸出符號 if(flag==1){cout<<"-";minuss(b,a,blen,alen);}else minuss(a,b,alen,blen);return 0; }

。。。

剛發出來就被Kevin大神看見了,

告訴我不能像上面那樣獲取錯誤用例,只能按照題目來寫,正常機試提交只有一個結果正確或者錯誤

這樣容易養成依賴,會覺得反正每次可以改錯誤樣例。。。

我還以為我這是正常操作那~(委屈.jpg)

?

那么以后,就把各種情況都考慮好了再寫。自己把測試用例想完善,測試好了再提交~

也會像某Kevin說的,每一次的錯誤都記錄一下,比如沒考慮到哪種情況等等。
?


高精度第二題:

題目:給出兩個正整數A和B,計算A+B的值。保證A和B的位數不超過500位。

輸入描述:

讀入兩個用空格隔開的正整數

輸出描述:

輸出A+B的值

樣例輸入:

3 12

樣例輸出:

15

數據范圍及提示:

兩個正整數的位數不超過500位

我的答案:

這題看似和上面一樣,其實不太一樣。

emmm

其實也一樣。

?

這題出現了兩個錯誤

1.同位的兩個數相加小于10的情況下忘了將記錄進位數的temp置0。導致接下來會加上了上一次的進位位。

2.這是加法,兩個加數地位一樣,假如兩個數的位數不同,不能只考慮前面的數比后面的長這種情況,還要考慮后面的比前面的長。

?

代碼:

#include <iostream> #include <string.h> using namespace std; void pluss(char a[],char b[],int alen,int blen) {int c[10000];int arear=alen-1;int brear=blen-1;int i=0,temp=0;int flag=0;while(arear>=0 && brear>=0){if((temp+a[arear]-'0'+b[brear]-'0')<10){c[flag++]=a[arear]-'0'+b[brear]-'0'+temp;temp=0;}else{c[flag++]=(a[arear]-'0'+b[brear]-'0'+temp)%10;temp=(a[arear]-'0'+b[brear]-'0'+temp)/10;}arear--;brear--;}while(arear>=0){if((temp+a[arear]-'0')<10){c[flag++]=a[arear]-'0'+temp;temp=0;}else{c[flag++]=(a[arear]-'0'+temp)%10;temp=(a[arear]-'0'+temp)/10;}arear--;}while(brear>=0){if((temp+b[brear]-'0')<10){c[flag++]=b[brear]-'0'+temp;temp=0;}else{c[flag++]=(b[brear]-'0'+temp)%10;temp=(b[brear]-'0'+temp)/10;}brear--;}if(temp!=0) c[flag]=temp;else flag--;for(i=flag;i>=0;i--){cout<<c[i];} } int main() {char a[500];char b[500]; cin>>a>>b;int alen=0,blen=0;alen=strlen(a);blen=strlen(b);pluss(a,b,alen,blen);return 0; }

高精度第三題:

題目:

給出兩個正整數A和B,計算A*B的值。保證A和B的位數不超過500位。

輸入描述:

讀入兩個用空格隔開的正整數

輸出描述:

輸出A*B的值

樣例輸入:

3 12

樣例輸出:

36

數據范圍及提示:

兩個正整數的位數不超過500位

我的答案:

這個和前兩題還是有差別的。

想了很久,一直在糾結怎么循環,才能把進位,當前的乘積加在一起。

就是沒觀察出來可以先加再進位這種方法。

Kevin大神果然還是強強的。

我還是太嫩了。。。

自己還是沒抓到本質吧,主要是沒想到先都加進c里,再統一進位這種辦法。

積累經驗吧。

Kevin說得對,任何題目都是這樣,想一下假如人算的話,怎么做,然后應用到電腦上,然后利用算法和數據結構優化時間和空間復雜度。

就算是要模擬,也不能一模一樣的蠻干。有腦子就要學會轉彎,學會轉彎就是能夠優化。

下面是Kevin大神教給我的代碼:

(不到50行,干干凈凈的解決了問題,越來越覺得他真的好厲害。。。)

(學習的越多越覺得他棒棒。突然覺得我得好好努力,不然連大佬有多厲害都不知道)

#include <iostream> #include <string.h> using namespace std; int c[1000000];void multip(char a[],char b[],int alen,int blen) {int i=0,j=0,k=0;for(i=alen-1;i>=0;i--){for(j=blen-1;j>=0;j--){c[alen-1-i+blen-1-j]+=(a[i]-'0')*(b[j]-'0');}}for(k=0;k<alen+blen;k++){c[k+1]=c[k+1]+c[k]/10;c[k]=c[k]%10;}while(c[k]==0){k--;}for(i=k;i>=0;i--){cout<<c[i];} } int main() {char a[500];char b[500]; cin>>a>>b;int alen=0,blen=0;alen=strlen(a);blen=strlen(b);multip(a,b,alen,blen);return 0; }

原來Kevin真的有每天看我這種小弱雞的博客。。。

突然緊臟。。。

?

怪不得昨晚夢見慌慌亂亂的參加考試。。。

? ? ? ? ? ? ?? ? ? ? ? ?

加油內~

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的强行刷段位第九天的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产综合视频在线 | 久久久国产精品一区 | 一区二区影院 | 亚洲专区欧美 | 九九热国产精品视频 | 色 综合 欧美 亚洲 国产 | 欧美日韩综合在线观看 | 日韩中文字幕网址 | 国产黄在线播放 | 免费成人看视频 | av乱码| 色综合久久av | 狠狠婷 | 色妇网 | 国产亚洲二区 | 五月色婷 | 极度诱惑香港电影完整 | 欧美日韩免费在线视频 | 琪琪伦伦影院理论片 | 三年大全国语中文版免费播放 | 五月天激情综合 | 紧身裙女教师三上悠亚红杏 | 欧美性爱精品在线 | 亚洲国产黄色av | hd性videos意大利精品 | 青青草欧美| 后入内射无码人妻一区 | 色偷偷中文字幕 | 日韩av中文字幕在线 | 国产一区一一区高清不卡 | 欧美一级片在线视频 | 亚洲免费在线视频观看 | 夜夜操天天 | 国产色综合天天综合网 | 日日干av| 精品国自产拍在线观看 | 国产精品suv一区二区 | 色七七桃花影院 | 双腿张开被9个男人调教 | 欧美视频精品在线 | 国产精品911 | 香蕉网在线视频 | 99久久影院 | 亚洲欧美日韩久久 | 精品国产免费视频 | 性感美女高潮 | 日本午夜视频在线观看 | 中国超碰 | 岛国av噜噜噜久久久狠狠av | 诱夫1v1高h | 一区二区三区视频在线 | 欧美色图12p| 亚洲欧美激情在线观看 | 欧美系列在线观看 | 天天色网站 | 婷婷激情五月 | 日本高清视频免费看 | 日韩精品免费一区二区 | www.欧美 | 天天做天天躁天天躁 | 亚洲第一淫片 | 国产黄大片在线观看画质优化 | 在线看中文字幕 | 男人av资源网 | 极品少妇一区二区 | 久久夜色精品亚洲 | 亚洲夜夜爱 | 国产精品一区在线观看你懂的 | 精品人妻一区二区三区换脸明星 | 久久青青热 | 天天射天天舔 | 尤物精品视频在线观看 | 91美女视频网站 | 国产精品一区二区久久毛片 | 日韩免费二区 | 国产成年人 | 亚洲熟女一区二区三区 | 天堂av免费在线观看 | 一起操在线观看 | 国产精品香蕉在线观看 | 7色av| 国产成人精品二区三区亚瑟 | www成人在线 | 拔插拔插华人 | 成人精品视频网站 | 操操操日日日 | 日韩亚洲区 | 999国产精品视频 | 国产美女免费看 | 欧美综合一区 | 国产成人精品999在线观看 | 精精国产xxxx视频在线播放 | 国产亚洲精品aaaaaaa片 | 欧美性生活一区 | 人人爱超碰| 懂色av一区二区夜夜嗨 | 欧美精品一区二区久久婷婷 | 91蜜桃婷婷狠狠久久综合9色 | 亚洲av无码久久精品色欲 |