关闭

C++ 计算系列二

标签: C++深入体验面向对象C++开发计算
721人阅读 评论(0) 收藏 举报
分类:

6.求四数的最大公约数

int getMaxDivisor(int a,int b,int c,int d)
{
	int num = 1;
	int max = 0;

	//找出四个数中最大的数
	a>=b?max=a:max=b;
	max>=c?max:max=c;
	max>=d?max:max=d;

	cout<<max<<endl;
	for(int i=1;i<=sqrt(max);i++)
	{
		if((a%i==0)&&(b%i==0)&&(c%i==0)&&(d%i==0))
		{
			num = i;
		}
	}
	return num;
}

7.编制一个函数reverse,返回给定数据的“反序数”,例如输入1234,输出4321

int getReverse(int number)
{
	int val = 0;
	int rev = 0;
	while(number!=0)
	{
		rev = number %10;
		val *=10;
		val+=rev;
		number /=10;
	}
	return val;
}

8.判断参数是否是回文数——回文数,

 即从前往后读和从后往前读都一样的数,如1221和121都是回文数,而1231、123都不是回文数

bool isPalindromicNumber(int number)
{
	int ori = number;

	int val = 0;
	int rev = 0;
	while(number!=0)
	{
		rev = number %10;
		val *=10;
		val+=rev;
		number /=10;
	}

	cout<<ori<<"---"<<val<<endl;
	if(val == ori)
	{
		return true;
	}
	else
	{
		return false;
	}
}

9.判断参数是否为素数(是素数返回true,否则false)

bool isPrimer(int number)
{
	bool isPrimer = false;
	for(int i=2;i<=sqrt(number);i++)
	{
		if(number %i!=0)
		{
			isPrimer = true;
		}
	}
	return isPrimer;
}

10.特殊三位数

 请输出满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数。要求用自定义函数实现求阶乘。

int getFactorial(int number)
{
	int product =1;
	for(int i=1;i<=number;i++)
	{
		product *=i;
	}
	return product;
}

void specialNum()
{
	int num;
	int a,b,c;
	for(int i=100;i<1000;i++)
	{
		num = i;
		c = num %10;
		b = (num/10)%10;
		a = (num/100);
		
		if(num == (getFactorial(a)+getFactorial(b)+getFactorial(c)))
		{
			cout<<i<<endl;
		}
	}
}

11.求组合数

求组合数公式为:

输入m和n的值,求组合数。要求分别定义求阶乘和求组合的函数,求组合数的函数调用求阶乘的函数来实现求解

int getCombinatorialNumber(int m,int n)
{
	int val;
	if(m<n)
	{
		return 0;
	}
	val = getFactorial(m)/(getFactorial(n)*getFactorial(m-n));
	return val;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:364792次
    • 积分:4494
    • 等级:
    • 排名:第6866名
    • 原创:137篇
    • 转载:32篇
    • 译文:13篇
    • 评论:29条
    个人经历
    爱编程,爱晚起,偶尔也忙到深夜; 喜欢学习,努力工作,也享受生活; 我酷爱技术,崇尚简单的快乐和幸福; 我不是码农,我是程序员; 我和你一样,为理想而奋斗.
    文章分类
    博客专栏