題解 P1009 階乘之和

2022-08-11 13:27:21 字數 1710 閱讀 3887

- [p1009 階乘之和](

qaq,剛開始看完題直接立刻按照題目階乘相加寫出了程式,資料使用int型別處理,4個測試點只通過兩個。

感覺應該是int型資料不夠大,存不下結果,然後換成了long long測試一遍還是不行,又換成了unsigned long long,還是不夠大,

//

這個不行

#include#include

#include

#include

#include

using

namespace

std;

unsigned

long

long jc(unsigned long

long

n);int

main()

unsigned

long

long jc(unsigned long

long

n)

發現題目提示用高精度計算,花了大半天用陣列寫了乙個超長資料加法乘法器終於全部ac,

#include#include

using

namespace

std;

class

operator

;operator::operator(

string

s)

else

input =s;

length =s.length();

stringstream ss;

for(int i = 0; i)

}}void

operator::init()

input = ""

;

this->length = 0;}

void

operator::printdata()

if(length==0

) cout

<

; cout

<

string =

"<

cout

<

length =

"<

cout

<

}void operator::setdata(strings)}

intoperator::adder(operator ope)

if(add_bit==1

)

stringstream ss;

input.resize(

this->length);

for(int i = 0; ilength; i++)

return1;

}int operator::multiplier(operator ope,int

n)

return1;

}int

operator::subtractor(operator ope)

intoperator::divider(operator ope)

intmain()

sum_factorial.adder(factorial);

}cout

<

return0;

}

真不容易,想刷點大水題。。。。。。。。。。

P1009 階乘之和

提交該題 討論 題解記錄 用高精度計算出s 1!2!3!n!n 50 其中 表示階乘,例如 5!5 4 3 2 1。輸入格式 乙個正整數n。輸出格式 乙個正整數s,表示計算結果。輸入樣例 1 3 輸出樣例 1 9 include include using namespace std int a 1...

P1009 階乘之和(大數計算)

allsight c語言 高精度加法 問題描述 輸入兩個整數a和b,輸出這兩個整數的和。a和b都不超過100位。演算法描述 由於a和b都比較大,所以不能直接使用語言中的標準資料型別來儲存。對於這種問題,一般使用陣列來處理。定義乙個陣列a,a 0 用於儲存a的個位,a 1 用於儲存a的十位,依此類推。...

洛谷 P1009 階乘之和

題目描述 用高精度計算出s 1 2 3 n n 50 s 1 2 3 n n 50 其中 表示階乘,例如 5 5 times 4 times 3 times 2 times 15 5 4 3 2 1。乙個正整數nn。乙個正整數ss,表示計算結果。輸入 1複製 3輸出 1複製 9分析 本來以為昨晚寫完...