- [p1009 階乘之和](
qaq,剛開始看完題直接立刻按照題目階乘相加寫出了程式,資料使用int型別處理,4個測試點只通過兩個。
感覺應該是int型資料不夠大,存不下結果,然後換成了long long測試一遍還是不行,又換成了unsigned long long,還是不夠大,
//發現題目提示用高精度計算,花了大半天用陣列寫了乙個超長資料加法乘法器終於全部ac,這個不行
#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)
#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分析 本來以為昨晚寫完...