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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

基础算法 —— 高精度计算

發布時間:2025/3/17 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基础算法 —— 高精度计算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【概述】

利用計算機進行數值計算,有時會遇到這樣的問題:有些計算要求精度高,希望計算的尾數可達到幾十甚至幾百位,雖然計算機本身精度足夠高,但受硬件限制,往往達不到實際問題所要求的精度,因此我們用程序設計的方法去實現這樣的高精度計算。

除 C++ 高精算法之外,還可以選用 Java 大數類來處理高精問題,而且由于 Python 沒有數據類型的限制,因此也可用 Python 來解決高精問題。

【要處理的問題】

1.數據接收與存儲:當數據很長時,可以用字符串方式輸入,利用字符串函數和運算操作,將每一位取出存入數組中。

void input() {string s;cin>>s;//讀入字符串a[0]=s.length();//用a[0]存儲字符串s的位數for(i=1;i<=a[0];i++)//將數串轉為數組a,并倒序存儲a[i]=s[a[0]-i]-'0'; }

2.位數的確定:接收時使用字符串,所以它的位數等于字符串的長度。

3.補零問題:當兩個操作數長度不一樣時,需要進行補零。

void fixed() {string str1,str2;int len1,len2;int i;cin>>str1;//讀入字符串1cin>>str2;//讀入字符串2len1=str1.length();//求字符串長度1len2=str2.length();//求字符串長度2if(len1<len2)//當字符串1<字符串2時,對字符串1補零for(i=1;i<=len2-len1;i++)str1="0"+str1;else//當字符串1>字符串2時,對字符串1補零for(i=1;i<=len1-len2;i++)str2="0"+str2; }

4.進位、借位處理

加法:c[i]=a[i]+b[i];
? ? ??????if(c[i]>=10)

? ? ????? { c[i]%=10;++c[i+1]; }

減法:if(a[i]<b[i])
??????????{ --a[i+1];a[i]+=10; }

??????????c[i]=a[i]-b[i];

乘法:c[i+j-1]=a[i]*b[i]+x+c[i+j-1];
???????????x=c[i+j-1]/10;

???????????c[i+j-1]%=10;

5.商和余數的處理:視被除數、除數的位數情況進行處理

【分類】

  • 高精度加法? ? 點擊這里
  • 高精度減法? ? 點擊這里
  • 高精度乘法? ? 點擊這里
  • 高精度除法? ? 點擊這里
  • Java 大數類:點擊這里
  • 【例題】

    1.入門模版題

  • A+B Problem(高精)(洛谷-P1601)(高精加):點擊這里
  • 大整數加法(信息學奧賽一本通-T1168)(高精加):點擊這里
  • 高精度減法(洛谷-P2142)(高精減):點擊這里
  • 大整數減法(信息學奧賽一本通-T1169)(高精減):點擊這里
  • A*B Problem(洛谷-P1303)(高精乘):點擊這里
  • 高精度乘法(信息學奧賽一本通-T1307)(高精乘):點擊這里
  • 大整數乘法(信息學奧賽一本通-T1174)(高精乘):點擊這里
  • 求10000以內的階乘(信息學奧賽一本通-T1172)(高精乘):點擊這里
  • 計算2的N次方(信息學奧賽一本通-T1170)(高精乘):點擊這里
  • 階乘和(信息學奧賽一本通-T1173)(高精乘+高精加):點擊這里
  • 2.混合題

  • B進制星球(洛谷-P1604)(高精度加法+遞推):點擊這里
  • 回文數(信息學奧賽一本通-T1309)(高精加+條件判斷):點擊這里
  • 除以13(信息學奧賽一本通-T1175)(高精除低精+預處理):點擊這里
  • 高精除(信息學奧賽一本通-T1308)(高精除高精):點擊這里
  • 大整數的因子(信息學奧賽一本通-T1171)(高精除分解因數):點擊這里
  • 國王游戲(洛谷-P1080)(高精乘+貪心):點擊這里
  • 3.Java 與 Python

  • 初中的算術(51Nod-1873)(Java):點擊這里
  • 一半的一半(51Nod-2382)(Java):點擊這里
  • Applese 涂顏色(2019牛客寒假算法基礎集訓營 Day4-E)(Java+推導):點擊這里
  • Resistors in Parallel (Gym-102028E)(Java+推導):點擊這里
  • Fibonacci in the Pocket(ZOJ-4108)(Java+斐波那契數列):點擊這里
  • Chilly Willy(CF-248B)(Python+暴力):點擊這里
  • 處女座的百日理財計劃(2019牛客寒假算法基礎集訓營 Day3-H)(Python+DP):點擊這里
  • 總結

    以上是生活随笔為你收集整理的基础算法 —— 高精度计算的全部內容,希望文章能夠幫你解決所遇到的問題。

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