problemscpp
A collection of my answers to algorithm problems in c++.
函数
acwing::acwing3389 命名空间参考

  1. N 的阶乘
更多...

函数

int main (istream &cin, ostream &cout)
 
 TEST (acwing3389, case1)
 

详细描述

  1. N 的阶乘

函数说明

◆ main()

int acwing::acwing3389::main ( istream &  cin,
ostream &  cout 
)

在文件 acwing408.cpp1919 行定义.

1919 {
1920 unsigned n;
1921 unordered_map<unsigned, BigInt> cache = unordered_map<unsigned, BigInt>();
1922 while(cin >> n) {
1923 BigInt res = 1;
1924 for(unsigned i = 1; i <= n; i++) {
1925 if(cache.find(i) != cache.end()) {
1926 res = cache[i];
1927 continue;
1928 }
1929 res *= i;
1930 cache[i] = res;
1931 }
1932 cout << res << endl;
1933 }
1934 return 0;
1935 }
高精度整数
Definition: templates.h:23

被这些函数引用 TEST().

◆ TEST()

acwing::acwing3389::TEST ( acwing3389  ,
case1   
)

在文件 acwing408_test.cpp2109 行定义.

2109 {
2110 istringstream in("4\n"
2111 "5\n"
2112 "15");
2113 auto out = ostringstream();
2114 main(in, out);
2115 const auto ans = out.str();
2116 ASSERT_EQ("24\n"
2117 "120\n"
2118 "1307674368000\n",
2119 ans);
2120 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().