用函数实现求一元二次方程ax^2+bx+c=0的根

1.用函数实现求一元二次方程ax^2+bx+c=0的根,要求二次方程的系数a,b,c由键盘输入。

#include "iostream"
#include "math.h"
using namespace std;
void getValue(double a,double b,double c){
	if(b*b-4*a*c<0){
		cout<<"此方程无实数解!"<<endl;
		return;
	}
	double delta=sqrt(b*b-4*a*c);
	if(delta==0){
	cout<<"此方程的解为同解: "<<-b/(2*a)<<endl;
	}else
	cout<<"此方程的两个实数解为: "<<(-b-delta)/(2*a)<<" ºÍ "<<(-b+delta)/(2*a)<<endl;
}
int main()
{
	double a,b,c;
	cout<<"请输入一元二次方程ax^2+bx+c=0的三个参数a,b,c: ";
	cin>>a>>b>>c;
	getValue(a,b,c);
	return 0;
}

2.编写函数求下面表达式的值
K=n!/m!(n-m)! n≥m

#include "iostream"
#include "math.h"
using namespace std;
long factorial(int n){
	long result=1;
	for(int i=1;i<=n;i++)
	result*=i;
	return result;
}
double getValue(int n,int m){
	return factorial(n)/(factorial(m)*factorial(n-m));
}
int main()
{
	int n,m;
	cout<<"请输入n,m(n≥m): ";
	cin>>n>>m;
	cout<<getValue(n,m);
	return 0;
}

3.由键盘输入两个整数,用函数实现求两个整数的最大公约数和最小公倍数

#include "iostream"
#include "math.h"
using namespace std;
int maxYue(int m,int n){
	int min=m<n?m:n;
	int i=min;
	for(;i>=1;i--){
		if(m%i==0&&n%i==0)
		break;
	}
	return i;
}
int minBei(int m,int n){
	int max=m>n?m:n;
	int i=max;
	for(;;i++){
		if(i%m==0&&i%n==0)
		break;
	}
	return i;
}
int main()
{
	int m,n;
	cout<<"请输入两个整数: ";
	cin>>m>>n;
	cout<<"最大公约数是: "<<maxYue(m,n)<<" 最小公倍数是: "<<minBei(m,n)<<endl;
	return 0;
}

4.通过函数实现由键盘输入一个十六进制数,输出相应的十进制数

#include "iostream"
#include "math.h"
#include "string.h"
using namespace std;
double getdecimalism(char n[]){
  int length,num=0;
  length=strlen(n);
  for(int i=length-1;i>=0;i--)
  {
   if(n[i]>='0'&&n[i]<='9')
    num+=(n[i]-'0')*pow(16,length-1-i);
    else if(n[i]>='A'&&n[i]<='F')
        num+=(10+(n[i]-'A'))*pow(16,length-1-i);
     else if(n[i]>='a'&&n[i]<='f')
          num+=(10+(n[i]-'a'))*pow(16,length-1-i);
 
  }
	return num;
}
int main()
{
	char n[15];
	cout<<"请输入一个十六进制数n: ";
	cin>>n;
	cout<<getdecimalism(n);
	return 0;
}
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值