您的位置:首页 > 编程语言 > C语言/C++

C++ 计算系列二

2013-12-04 20:49 405 查看

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息