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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

Hdu 1753 大明A+B 高精度小数相加

發(fā)布時(shí)間:2023/12/18 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hdu 1753 大明A+B 高精度小数相加 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題意:

很長(zhǎng)很長(zhǎng)的小數(shù)相加..

思路:

用1000長(zhǎng)的數(shù)組處理兩個(gè)小數(shù)..前500存整數(shù)..后500存小數(shù)..然后相應(yīng)位相加..

然后輸出除去前導(dǎo)0和后面0的..

Tips:

※ strchr(char *a, char c) 返回的是 a 字符數(shù)組中 c 字符的第一次出現(xiàn)的位置..返回的不是迭代器的位置..而是地址..

※ 主要就是對(duì)字符串的處理..要很小心阿..

※ 以字符數(shù)組的形式讀入高精度小數(shù)..然后用他們 - ‘0’..把字符變成整數(shù)來(lái)處理..最后以整數(shù)方式輸出..

Code:

View Code 1 #include <stdio.h> 2 #include <cstring> 3 #define Max 1010 4 #define clr(x) memset(x, 0, sizeof(x)) 5 6 char str1[Max], str2[Max], ans[Max]; 7 char tmp1[Max], tmp2[Max]; 8 9 void Calculate() 10 { 11 int i, j, k; 12 clr(tmp1), clr(tmp2), clr(ans); 13 14 int len = strlen(str1); 15 if(strchr(str1, '.') == NULL) 16 k = len; 17 else 18 k = strchr(str1, '.') - str1;///--->>!!! 19 for(i = k-1, j = 500; i >= 0; --i, ++j) 20 tmp1[j] = str1[i]-'0'; 21 for(i = k+1, j = 499; i < len; ++i, --j) 22 tmp1[j] = str1[i]-'0'; 23 24 len = strlen(str2); 25 if(strchr(str2, '.') == NULL) 26 k = len; 27 else 28 k = strchr(str2, '.') - str2; 29 for(i = k-1, j = 500; i >= 0; --i, ++j) 30 tmp2[j] = str2[i] - '0'; 31 for(i = k+1, j = 499; i < len; ++i, --j) 32 tmp2[j] = str2[i] - '0'; 33 34 int tmpc = 0, tmps; 35 for(i = 0; i < 1010; ++i){ 36 tmps = tmp1[i]+tmp2[i]+tmpc; 37 ans[i] = tmps%10; 38 tmpc = tmps/10; 39 } 40 } 41 42 void outPut() 43 { 44 int i, j; 45 for(i = 1009; i > 500; --i) 46 if(ans[i]) break; 47 while(i >= 500) 48 printf("%d", ans[i--]); 49 for(j = 0; j < 500; ++j) 50 if(ans[j]) break; 51 if(j != 500){ 52 printf("."); 53 for(i = 499; i >= j; --i) 54 printf("%d", ans[i]); 55 } 56 puts(""); 57 } 58 59 int main() 60 { 61 int i, j, k; 62 while(scanf("%s %s", &str1, &str2) != EOF) 63 { 64 Calculate(); 65 outPut(); 66 } 67 return 0; 68 }

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/Griselda/archive/2012/08/07/2625948.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的Hdu 1753 大明A+B 高精度小数相加的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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