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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

NYOJ 155 求高精度幂

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

求高精度冪

時間限制:3000?ms ?|? 內存限制:65535?KB 難度:2 描述

對數值很大、精度很高的數進行高精度計算是一類十分常見的問題。比如,對國債進行計算就是屬于這類問題。?

現在要你解決的問題是:對一個實數R( 0.0 < R < 99.999 ),要求寫程序精確計算?R??n?次方(Rn),其中n?是整數并且?0 < =n <= 25

輸入
輸入有多行,每行有兩個數R和n,空格分開。R的數字位數不超過10位。
輸出
對于每組輸入,要求輸出一行,該行包含精確的 R 的 n 次方。輸出需要去掉前導的 0 后不要的 0 。如果輸出是整數,不要輸出小數點。
樣例輸入
95.123 12
0.4321 20
5.1234 15
6.7592 9
98.999 10
1.0100 12
樣例輸出
548815620517731830194541.899025343415715973535967221869852721
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
43992025569.928573701266488041146654993318703707511666295476720493953024
29448126.764121021618164430206909037173276672
90429072743629540498.107596019456651774561044010001
1.126825030131969720661201
AC碼:
#include<stdio.h> #include<string.h> #define MAX 300 long long num[MAX]; int main() {long long R=0,n=0;long long i,j,k,count=0;char ch[15];while(scanf("%s%ld",ch,&n)!=EOF){R=0;count=0;for(i=0;i<strlen(ch);i++){if(ch[i]!='.')R=R*10+(ch[i]-'0');elsecount=strlen(ch)-i-1;}if(n==0){if(R>0)printf("1\n");elseprintf("0\n");continue;}for(i=0;i<MAX-1;i++)num[i]=0;num[MAX-1]=1;k=MAX-1;for(i=1;i<=n;i++){j=MAX-1;while((j<=MAX-1)&&(j>=k)){num[j]*=R;j--;}for(j=MAX-1;j>=k;j--){while(num[j]>9){num[j-1]+=num[j]/10;num[j]=num[j]%10;j--;}}k=j+1;}if(count*n-MAX+k>=0){printf(".");for(i=1;i<=count*n-MAX+k;i++)printf("0");}j=MAX-1;while((num[j]==0)&&(MAX-j+1<=count*n))j--;for(i=k;i<=j;i++){if((i-k)==(MAX-k-count*n)){if(num[i]!=0)printf(".");elsebreak;}printf("%d",num[i]);}printf("\n");}return 0; }

總結

以上是生活随笔為你收集整理的NYOJ 155 求高精度幂的全部內容,希望文章能夠幫你解決所遇到的問題。

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