我想了解阶乘子例程或程序的所有不同处理方法。希望任何人都可以来这里看看他们是否想学习一种新语言。
基本上,我想看一个例子,说明编写算法的不同方法,以及它们在不同语言中的外观。
请限制为每个条目一个示例。如果您想突出显示一种特定的样式,语言或一个经过深思熟虑的想法以使自己适合发表在一个帖子中,那么我将为每个答案提供一个以上示例。
唯一真正的要求是,必须以所有表示的语言找到给定参数的阶乘。
#语言名称:可选样式类型 -可选的要点 代码在这里 其他参考文本在这里
我将偶尔地编辑所有格式不正确的答案。
因此,我写了一个通俗易懂的语言,可以用我经常用的三种语言编写,也可以是我对这个问题的其他回答中的一种,也是我今天刚刚学到的。这是一个独立的程序,它读取包含非负整数的一行,并打印包含其阶乘的一行。Bignum用于所有语言,因此最大可计算阶乘仅取决于计算机的资源。
perl FILENAME
runhugs FILENAME
g++ -lgmpxx -lgmp -x c++ FILENAME
./a.out
bf < FILENAME > EXECUTABLE
wspace FILENAME
编辑: 添加了空白作为第五种语言。顺便说一句,你 不 换行的代码<code>标签; 它打破了空白。同样,代码在固定宽度上看起来更好。
<code>
char //#b = 0 + 0 {-| 0 * /; #>>>>,---------- [>>>>,-------- #define a / *#-] >>>> ++ <<<<<<<< >> ++++++ [<------>-] <-<<<< #Perl> <> <> <> <> <> <> << >>>>> [[>> + <<-] >> [<< +> +>-] <-> #C ++-> <> <> <> <> <> <> <> <+ <[>>>> + <<<-<[-]]> [-] #Haskell >>]> [-<<<<< [<<<< >>>>> [[>> + <<-] >> [<< +> +>-] >>]] #空白>>>> [-[> + <-] + >>>>]] <<<< [<<<<] <<<< [<<<< #brainf * ck> <] >>>>> [>>> [>>>>] >>>> [>>>>] <<<< [[>>>> * / exp; ; //;#+ <<<<-<<<<] >>>> + <<<<<< [<<<<] [。POLYGLOT ^ 5。 #include <gmpxx.h> //] >>>>-[>>> [>>>>] >>>> [>>>>] <<<< [>> #定义eval int main()//> + <<<-] >>> [<<< + >> +>-> #include <iostream> // <] <-[>> + << [-]] << [<<<< >>>>>> [> [>>> #定义打印std :: cout << //> <+ <-]> [<< +> +>-] << [>>> #define z std :: cin >> // << + <<<-] >>> [<<< + >> +>-] <-> +++++ #define c / * ++++ [-<[-[>>>> + <<<<-]] >>>> [<<<< + >>>>-] << * / #define abs int $ n //> <<] <[>> + <<<< [-] >> [<< + >>-]] >>] < #定义uc mpz_class事实(int $ n){/ * <<< [<<<<] <<< [<< 使用bignum; sub#<<] >>>>-] >>>>] >>> [> [-] >>>] <<<< [>> + <<-] z {$ _ [0 + 0] = readline(* STDIN);} sub fact {my($ n)= shift;#>> #[<< +> +>-] <-> + <[>-<[-]]> [-<<-<<<< [>> + <<-] >> [<< +> +> + * / uc; if($ n == 0){return 1;}返回$ n * fact($ n-1); } //;# eval {abs; z($ n); print fact($ n); print(“ \ n”)/ * 2;};#-] <-> '+ <[>-<[-]]>] << [<<<<] <<<-[>> + <<-] >> [<< +> +>-] + <[>- +++ -}-<[-]]> [-<< ++++++++++++ <<<<-[>> + <<-] >> [<< +> +>-++ 事实0 = 1-> <> <> <> <> <> <> <] + <[>-<[-]]>] << [<< + + 事实n = n *事实(n-1){-<<] >>>>>> [[>> + <<-] >> [<< +> +++> +-} main = do {n <-readLn; print(fact n)}-+>-] <-> + <[>>>> + << + {-x <-<< [-]]> [-] >>]>] >>> [>>>>] <<<< [> +++++++ [<+++++++ >-] <-。<<<<] ++++ A + Rex +++ 2009+编写。';#+++ x-}-x * /;}