21xrx.com
2024-12-23 02:14:46 Monday
登录
文章检索 我的文章 写文章
C++代码实现求解20的阶乘
2023-07-05 02:18:50 深夜i     --     --
C++ 阶乘 代码

要求:使用C++语言,通过编写代码实现求解20的阶乘,代码运行正确,体现出良好的编写习惯。文章要求简明扼要,便于理解。

C++是一种流行的编程语言,拥有广泛的应用领域,能够对计算机系统进行高效的编程。本文将通过编写C++代码实现求解20的阶乘,以展示C++的功能和优势。

如何计算阶乘?阶乘是指从一个正整数开始,连乘到该数,如5的阶乘是5*4*3*2*1,记作5!。

接下来,我们将展示如何使用C++语言编写程序以计算出20的阶乘。

代码如下:


#include<iostream>

#include<cstring>

using namespace std;

void multiply(int res[], int& size, int n){

  int carry = 0; 

  for(int i=0; i<size; i++){ 

    int product = res[i]*n + carry; 

    res[i] = product % 10; 

    carry = product/10; 

  } 

  while(carry){ 

    res[size] = carry%10 

    carry /= 10; 

    size++; 

  } 

void factorial(int n){

  int res[10000]; 

  memset(res, 0, sizeof(res)); 

  res[0] = 1; 

  int size = 1; 

  for(int i=n; i>=1; i--) 

    multiply(res, size, i); 

  for(int i=size-1; i>=0; i--) 

    cout << res[i]; 

int main(){ 

  factorial(20); 

  return 0; 

}

以上是C++程序的全部内容,接下来我们逐行解读一下,以便更好的理解代码的逻辑。

头文件引用:


#include<iostream>

#include<cstring>

using namespace std;

这部分代码引用iostream和cstring两个头文件,前者是针对I/O流的库文件,后者是字符串处理库文件,这些库文件可以提供一些有用的工具类,这有助于编写程序。

multiply函数:


void multiply(int res[], int& size, int n){

  int carry = 0; 

  for(int i=0; i<size; i++){ 

    int product = res[i]*n + carry; 

    res[i] = product % 10; 

    carry = product/10; 

  } 

  while(carry){ 

    res[size] = carry%10 

    carry /= 10; 

    size++; 

  } 

这个函数实现了两个整数的乘法,res数组是存储结果的数组,size是存储结果的数字的位数。上面的函数将使用long long变量保存整数。这段代码使用了乘法进位公式和取余运算符。

factorial函数:


void factorial(int n){

  int res[10000]; 

  memset(res, 0, sizeof(res)); 

  res[0] = 1; 

  int size = 1; 

  for(int i=n; i>=1; i--) 

    multiply(res, size, i); 

  for(int i=size-1; i>=0; i--) 

    cout << res[i]; 

}

这个函数实现了阶乘运算,包含一个循环遍历从n开始减1的所有正整数,每次调用multiply函数进行乘法运算,并将结果存储在res数组中。最后,循环输出结果。size变量是res数组的大小,阶乘的位数很大,因此需要使用一个大数组。

main函数:


int main(){ 

  factorial(20); 

  return 0; 

}

这个函数实际上调用了factorial函数来计算20的阶乘。

到这里,C++代码实现求解20的阶乘就介绍完了。可以看到,通过编写简短的C++代码,实现了计算出20的阶乘。

细心的读者会发现,这段代码并不神秘、复杂或令人畏惧,反倒是简单易懂。同时,这个程序也为C++相应的优势提供了一个漂亮的示例,其高效性、可读性和易理解性都是C++其他编程语言难以匹敌的。C++编程语言被广泛应用于系统编程、上层应用程序、嵌入式开发、游戏开发、机器人技术甚至是金融领域等领域,可以说在计算机编程的世界里,C++语言一直保持着其无与伦比的地位,为全球所推崇。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复