奇偶阶乘(实验)

本文介绍了一个C++程序,该程序通过用户输入的十个整数,计算并输出所有奇数的阶乘之和与所有偶数的阶乘之和。程序中使用了两个辅助函数来实现奇偶判断和阶乘计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题及代码

/* 
*文件名称:奇偶阶乘
*作    者:武鹏翔 
*完成日期:2017.4.10 
*版 本 号:v6.0 
*对任务及求解方法描述部分: 
*输入描述: 
*问题描述: 
*程序输出: 
*问题分析:定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数: 
*算法设计:
*/ 
#include<iostream>
using namespace std;  
int panduan(int x);
int jie(int p[],int y);
int main()
{
	int a[10],b[10],c[10];
	int i,j=0,k=0;
	cout<<"请输入十个整数:";
    for(i=0;i<10;i++)
	{
		cin>>a[i];
	}
	for(i=0;i<10;i++)
	{
		 if(panduan(a[i])==1)
			 b[j++]=a[i];
		 else if(panduan(a[i])==2)
			 c[k++]=a[i];
	}
	cout<<"奇数的阶乘为:"<<jie(b,j)<<endl;
	cout<<"偶数的阶乘为:"<<jie(c,k)<<endl;	
	return 0;
}
int panduan(int x)
{
	if(x%2==0)
		return 2;
	else
		return 1;
}
int jie(int p[],int y)
{
	int i,res=1;
	for(i=0;i<y;i++)
		res=res*p[i];
	return res;

}


二、运行结果


三、心得体会

清楚主函数中的变量和其他函数中的变量作用范围十分重要;其次对于数组的调用还需要加强。总体需要不断的改才写完这个程序,错误的地方并不少,希望自己以后可以再扎实一些。

四、知识点归纳

传递数组直接写数组名就可以了

阶乘计算是一种常见的数学运算,在计算机科学中有广泛的应用场景,例如排列组合、概率统计等领域。下面是对“阶乘计算”实验的一个总结: ### 实验概述 阶乘的定义为非负整数 \( n \) 的连乘积,记作 \( n! = n \times (n-1) \times ... \times 1 \),并且规定 \( 0! = 1 \)。 在编程中实现阶乘有多种方法,主要包括 **递归** 和 **迭代** 这两种主流思路。以下是它们的特点及对比分析: #### 方法一:递归法 优点:代码简洁直观,易于理解和编写;缺点:当输入值较大时容易导致栈溢出(Stack Overflow),效率较低。 ```python def factorial_recursive(n): if n == 0 or n == 1: return 1 else: return n * factorial_recursive(n - 1) ``` #### 方法二:迭代法 通过循环逐步累积结果,避免了函数调用带来的额外开销,适用于处理较大的数值范围。 ```python def factorial_iterative(n): result = 1 for i in range(2, n + 1): #从2开始因为result初始化为1 result *= i return result ``` 此外还可以利用一些高级语言内置库提高性能如Python中的math.factorial()等高效工具直接求解而无需手动编码。 ### 总结要点: - 对于小规模数据集来说两者差异不大; - 若涉及大数据量则建议优先考虑优化过的算法比如动态规划或者特殊技巧减少冗余操作次数进而提升整体运行速度; - 应注意边界条件以及异常情况下的健壮性检查防止程序崩溃。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值