zoukankan      html  css  js  c++  java
  • 迭代与阶乘1



    // Combination2.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include "stdio.h"
    #include "iostream"
    
    using namespace std;
    
    int Combination_recursion(int n,int k);
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int n,k;
    	cin>>n>>k;
    	cout<<"recursion:"<<endl<<Combination_recursion(n,k)<<endl;
    
    	system("pause");
    	return 0;
    }
    
    int Combination_recursion(int n,int k)
    {
    	// C(n,n)=1, C(n,0)=1 0!=1;
    	if (n==k||k==0)
    	{
    		return 1;
    	}
    	else
    	{
    		return Combination_recursion(n-1,k)+Combination_recursion(n-1,k-1);
    	}
    
    }
    




    // Combination.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include "stdio.h"
    #include "iostream"
    
    using namespace std;
    
    int factorial_iteration(int x);
    double Combination_iteration(int n,int k);
    int factorial_recursion(int x);
    double Combination_recursion(int n,int k);
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int n,k;
    	cin>>n>>k;
    	cout<<"iteration:"<<endl;
    	int result=Combination_iteration(n,k);
    	cout<<result<<endl;
    	cout<<"recursion:"<<endl;
    	result=Combination_recursion(n,k);
    	cout<<result<<endl;
    	system("pause");
    	return 0;
    }
    
    double Combination_iteration(int n,int k)
    {
    	int n_fact=factorial_iteration(n);
    	int k_fact=factorial_iteration(k);
    	int n_k_fact=factorial_iteration(n-k);
    
    	double result=n_fact/n_k_fact/k_fact;
    	return result;
    }
    
    double Combination_recursion(int n,int k)
    {
    	int n_fact=factorial_recursion(n);
    	int k_fact=factorial_recursion(k);
    	int n_k_fact=factorial_recursion(n-k);
    
    	double result=n_fact/n_k_fact/k_fact;
    	return result;
    }
    
    int factorial_iteration(int x)
    {
    	if (x==0)
    	{
    		return 1;
    	}
    	int result=1;
    	while(x>0)
    	{
    		result*=x;
    		x--;
    	}
    	return result;
    }
    
    int factorial_recursion(int x)
    {
    	if (x==0||x==1)
    	{
    		return 1;
    	}
    	else
    	{
    		return x*factorial_recursion(--x);
    	}
    }


  • 相关阅读:
    写代码随想
    学生管理系统
    自定义栈
    位运算符加密
    自定义Vector
    二叉树排序
    双向循环链表
    双向链表
    加载properties文件
    通讯录
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3085988.html
Copyright © 2011-2022 走看看