咳咳,這是一道高精的題,好久以前十分弱智的題(弱智嗎???),只是看起來好難,於是一直放棄。。。
可是今天看見了,發現1.6(openjudge)裡面竟然就這乙個沒打鉤,於是只好硬著頭皮做了。。
先貼上題目:
15:階乘和
總時間限制: 1000ms 記憶體限制: 65536kb
描述:
用高精度計算出s=1!+2!+3!+…+n!(n≤50)
其中「!」表示階乘,例如:5!=5*4*3*2*1。
輸入正整數n,輸出計算結果s。
輸入乙個正整數n。輸出計算結果s。
樣例輸入
樣例輸出
於是我先瀟灑地打完框架,然後先算算50的階乘有多少位,一算,哇!才六十多位,我就定義了一百個陣列(其實是105個==),然後為了節省空間時間,把每乙個存進四位,也就是/10000。
then,我照著上面這道題(求階乘)的思路,打出了階乘這部分框架,然後用高精加把他們加起來,就是這倆貨:
int
a[105]
/*階乘和*/,k
[105]
/*階乘*/;
為了進一步節省我就用這個階乘:
for(int i=2;i
<=n;i++)
for(int j=100;j>=aa;j--)
加起來。。。。。。
是不是很快!
然後我高高興興打完**,才試驗幾個數就交了,發現是wrong answer!!
#include
int a[105]/*階乘和*/,k[105]/*階乘*/,kk=100
/*k當前位置*/,aa=100
/*a當前位置*/;
void wzk()//計算k位置
void wza()//計算a位置
void cc()//把階乘累加
wza();
}int main()
wzk();
cc();
}for(int i=100;i>=aa;i--)
printf("%3d",a[i]);
return
0;}
這是半個小時打出來的。。。。
後來發現好多錯誤:
1.最後的輸出,當輸出不足三位時會用空格補位。
2.中間的乘法,不能邊乘邊進製,不然會發現進製的數也跟著乘了的尷尬。。。
這些我改了好幾遍才改出來,,,,最後交上去對了,已經用了乙個多小時了。。。。。。。
#include
int a[105]/*階乘和*/,k[105]/*階乘*/,kk=100
/*k當前位置*/,aa=100
/*a當前位置*/;
void wzk()//計算k位置
void wza()//計算a位置
void cc()//把階乘累加
wza();
}int main()
wzk();
cc();
}for(int i=aa;i<=100;i++)
printf("%d",a[i]);
return
0;}
不用謝!!! 用高精實現n的階乘之和
include include include include include include include include using namespace std int a 10000 b 10000 n,s,up,ment,jishu,up1,ment1 intmain 高精階乘 for i...
c 高精除以高精
include using namespace std int a 1000 b 1000 int len1,len2,len int index int re 1000 p 0 記錄結果 intjudge return0 int main for i 0 isize i len1 n.size l...
平方和階乘(乙個繁瑣的高精 C )
平方和階乘 題目限制 時間限制 1000ms 記憶體限制 1000kib 題目描述 description 小明是乙個數學渣渣,但是老師總是讓他做一些很奇怪的題目。這次小明又遇到麻煩了,老師告訴他乙個數a,讓他求出這個數平方的階乘a1和這個數階乘的平方a2,還要a1a2的和,和a1a2的非負數差 在...