最大公约数、最小公倍数、2-10以内的进制转换

这篇博客探讨了几个常见的数学问题,包括如何找到两个数的最大公约数(GCD)、最小公倍数(LCM)以及如何进行2-10之间的进制转换。这些问题在算法和计算机科学中经常遇到,理解这些概念对于解决更复杂的问题至关重要。

一些常见的问题

最大公约数

#include <iostream>
#include <stdio.h>
using namespace std;
int main(){
	int fun(int,int);
	int m;
	int n;//m,n 用于接收键盘输入的参数
	scanf("%d,%d",&m,&n);
	if(m<n){
		int temp;
		temp = m;
		m = n;
		n = m;
	}
	printf("%d,%d的最大公约数为:%d\n",m,n,fun(m,n));
	return 1;
}
int fun(int m,int n){
	int res = 0;
	while(n!=0){
		r = m % n;
		m = n;
		n = r;
	}//辗转相除法
	return m;
}

最小公倍数

#include <stdio.h>
#include <iostream>
using namespace std;
void swap(int m,int n){
	int temp;
	temp = m;
	m = n;
	n = temp;
}
int main(){
	int fun1(int,int);
	int fun2(int,int);
	int m,n;
	scanf("%d,%d",&m,&n);
	if(m<n){
		swap(m,n);
	}
	int temp = fun1(m,n);
	int res = fun2(m,n,temp);
	if(res == -1)
		printf("fun1 error please check\n");
	else
		printf("%d,%d的最小公倍数是:%d",m,n,res);
	return 1;
}
//求最大公约数
int fun1(int m,int n){
	int temp;
	while(n != 0){
		temp = m % n;
		m = n;
		n = temp;
	}
	return m;
}
//求最小公倍数
int fun2(int m,int n,int o){
	int res = -1;
	if(o != 0){
		res = m * n / o;
	}
	return res;
}

2-10内的进制转换

#include <stdio.h>
#include <iostream>
using namespace std;
//x 要转换得值, m 进制
void change(int x,int m){
	static ch[] = {'0','1','2','3','4','5','6','7','8','9'};
	int i=0,r;//i记录数组中初始位置,r用来记录ch中的数字记录
	char b[80];//用于接收转换进制后得值
	while(x){
		r = x % m;
		x = x / m;
		b[i++] = char[r];
	}
	for(--i ; i >= 0 ; i--){
		printf("%c",b[i]);
	}
	printf("\n");
}
int main(){
	int m , n;
	printf("请输入需要转换的数:");
	scanf("%d",&m);
	printf("\n请输入需要转换的进制:");
	scnaf("%d",&n);
	change(m,n);
	return 1;
}
“bool e1; double a2,a3; long long a1; long long a9; char b1; string c1,c2; string us; char d1[5]; while(1) { cin>>us; if(us.find("打印正方形")!=-1) { cout<<"正方形边长是多少?"; cin>>a1; cout<<"用什么来打印?"; cin>>b1; dayinzhengfangxing(a1,b1); cout<<"\n"; } else if(us.find("圆周率")!=-1) { pi(LONG_LONG_MAX); } else if(us.find("二元一次方程")!=-1) { jieeryuanyicifangchengzu(); } else if(us.find("方程")!=-1) { cout<<"有几个未知数?有几个方程?"; cin>>m>>n; cout<<"请输入方程组前系数等式右边常数:(如:ax+by+cz=d,请输入a,b,c,d)"; for(int i=0;i<m;i++) { for(int j=0;j<=n;j++) { cin>>a[i][j]; } } int ans=jiefangchengzu(m,n); if(!ans) { cout<<"方程组解为:"; for(int i=0;i<n;i++) { cout<<x[i]<<' '; } } else { cout<<"该方程组无解或解不唯一!"; } } else if(us.find("英语")!=-1&&us.find("作文")!=-1) { cout<<"要求:围绕快乐的一天写,不少于5句话"; cin>>c1; cout<<"得分:"<<panyingyuzuowen(c1)<<endl; } else if(us.find("打印三角形")!=-1) { cout<<"三角形底长是多少?"; cin>>a1; cout<<"用什么来打印?"; cin>>b1; dayinsanjiaoxing(a1,b1); cout<<"\n"; } else if(us.find("找完全数")!=-1) { cout<<"1到几以内?"; cin>>a1; zhaowanquanshu(a1); cout<<"\n"; } else if(us.find("雪松数")!=-1) { cout<<"是查找一定范围内的雪松数还是输入一个数问是否是雪松数?(找一定范围内按0,输入一个数按1)"; cin>>e1; if(e1==0) { cout<<"最小值?最大值?"; cin>>a1>>a9; xuesongshu(a1,a9,0,e1); } else { cout<<"哪个数?"; cin>>a1; xuesongshu(0,0,a1,e1); } } else if(us.find("翻转")!=-1) { cout<<"输入:"; cin>>c1; cout<<res(c1); } else if(us.find("找同构数")!=-1) { cout<<"1到几以内?"; cin>>a1; zhaotonggoushu(a1); cout<<"\n"; } else if(us.find("重复随机结婚")!=-1) { cout<<"重复几次?"; cin>>a1; for(int i=1;i<=a1;i++) { suijijiehun(); usleep(1000); } } else if(us.find("随机结婚")!=-1) { cout<<"几次?" ; cin>>a1; for(int i=1;i<=a1;i++) suijijiehun(); cout<<endl; } else if(us.find("网络")!=-1) { wangluo(); } else if(us.find("找字幕数")!=-1) { cout<<"几位字幕数?"; cin>>a1; zhaozimushu(a1); cout<<endl; } else if(us.find("颜色")!=-1) { cout<<"哪种?"; for(int i=0;i<=1;i++) { cin>>d1[i]; } yanse(d1); } else if(us.find("找质数")!=-1) { cout<<"几到几以内?"; cin>>a1>>a9; zhaozhishu(a1,a9); cout<<endl; } else if(us.find("打印句子")!=-1) { cout<<"打印什么?"; cin>>c1; cout<<"打印多少遍?"; cin>>a1; print(c1,a1); cout<<"\n"; } else if(us.find("排序")!=-1) { cout<<"有几个数?"; cin>>a1; for(int i=0;i<a1;i++) { cin>>c[i]; } cout<<"从小到大还是从大到小?(从小到大回1,从大到小回2)"; cin>>a9; if(a9==1) { sort(c+0,c+a1,cmp); } if(a9==2) { sort(c+0,c+a1,cmd); } for(int i=0;i<a1;i++) { cout<<c[i]<<' '; } cout<<endl; } //else if(us.find("排序")==0) //{ ///cout<<"有几个数?"; //cin>>a1; //maopaopaixv(a1); //cout<<"\n"; //} //else if(us.find("排序")==0) //{ //int asd; //cout<<"有几个要排序的数?"; //cin>>asd; //int a[asd]; //for(int i=1;i<=asd;i++) //{ //cin>>a[i]; //} //kuaisupaixv(a, 0, sizeof(a) / sizeof(a[0]) - 1); //for(int i = 0; i < sizeof(a) / sizeof(a[0]); i++) //{ //cout << a[i] << " "; //} //} else if(us.find("乘方")!=-1) { cout<<"底数、指数是多少?"; int zxc; cin>>a1>>zxc; cout<<pow(a1,zxc); cout<<"\n"; } else if(us.find("平方根")!=-1) { cout<<"哪个数?"; cin>>a1; cout<<sqrt(a1); cout<<"/n"; } else if(us.find("鸡兔同笼")!=-1) { cout<<"有几个头?有几条腿?"; int m; cin>>m>>a1; jitutonglong(m,a1); cout<<"\n"; } else if(us.find("差")!=-1) { cout<<":"; cin>>a1; cout<<"差"; cin>>a9; hecha(a1,a9); } else if(us.find("差倍")!=-1) { cout<<"差:"; cin>>a1; cout<<"倍"; cin>>a9; chabei(a1,a9); } else if(us.find("阶乘")!=-1) { cout<<"从1乘到几?(范围2~20)"; cin>>a1; cout<<jiecheng(a1); cout<<"\n"; } else if(us.find("计算器")!=-1) { try { jisuanqi(); }catch(char const* a) { cout<<a; } cout<<endl; } else if(us.find("斐波那契")!=-1) { cout<<"要找斐波那契数列的第几个?"; cin>>a1; cout<<chafeibonaqieshulie(a1); cout<<endl; } else if(us.find("最大公因数")!=-1) { cout<<"哪两个数?"; cin>>a1>>a9; cout<<zuidagongyinshu(a1,a9); cout<<"\n"; } else if(us.find("最小公倍数")!=-1) { cout<<"哪两个数?"; cin>>a1>>a9; cout<<zhaoziuxiaogongbeishu(a1,a9); cout<<"\n"; } else if(us.find("找因数")!=-1) { cout<<"哪个数?"; cin>>a1; zhaoyinshu(a1); cout<<"\n"; } else if(us.find("绝对值")!=-1) { cout<<"哪个数?"; cin>>a1; cout<<abs(a1); cout<<endl; } else if(us.find("退出")!=-1) { cout<<"好的!"; break; } else if(us.find("勾股")!=-1) { cout<<"1~?"; cin>>a1; gougu(a1); } else if(us.find("计时")!=-1) { cout<<"计时多少秒?"; cin>>a1; jishiqi(a1); cout<<endl; } else if(us.find("大整数")!=-1&&us.find("乘")!=-1) { cout<<"哪两个数?"; cin>>c1>>a1; int a[90]; memset(a,0,sizeof(a)); s2BIG(c1,a); int sum[110] ; memset(sum,0,sizeof(sum)); mulBIG(a,a1,sum); printBIG(sum); } else if(us.find("大整数")!=-1&&us.find("大小")!=-1) { cout<<"哪两个数?"; cin>>c1>>c2; int a[90],b[90]; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); s2BIG(c1,a); s2BIG(c2,b); if(cmpBIG(a,b)) { printBIG(a); cout<<"<"; printBIG(b); } else { printBIG(a); cout<<">="; printBIG(b); } } else if(us.find("大整数")!=-1&&us.find("加")!=-1) { cout<<"哪两个数?"; cin>>c1>>c2; int a[90],b[90]; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); s2BIG(c1,a); s2BIG(c2,b); int unm[91]; memset(unm,0,sizeof(unm)); addBIG(a,b,unm); printBIG(unm) ; } else if(us.find("bmi")!=-1||us.find("BMI")!=-1) { cout<<"输入重量(kg)、身高(m)"; cin>>a2>>a3; a2=a2/(a3*a3) ; cout<<a2<<' '; if(a2>=20.0&&a2<=25.0) { cout<<"BMI值正常"; } else if(a2>25.0&&a2<=30.0) { cout<<"超重,请注意!"; } else if(a2<20.0) { cout<<"较瘦,请注意!"; } else { cout<<"肥胖!!请注意!!!"; } cout<<endl; } else if(us.find("猜数")!=-1) { cout<<"几到几的范围?"; cin>>a1>>a9; if(caishu(a1,a9)) { cout<<"欢迎下次光临!"; cout<<endl; } else { cout<<"你厉害,电脑猜不出"; cout<<"\n"; } } else if(us.find("0/1背包")!=-1) { if(lingyibeibao()) { cout<<"欢迎下次光临!"; cout<<endl; } else { cout<<"电脑出问题了,请下次再来"; cout<<"\n"; } } else if(us.find("完全背包")!=-1) { if(wanquanbeibao()) { cout<<"欢迎下次光临!"; cout<<endl; } else { cout<<"电脑出问题了,请下次再来"; cout<<"\n"; } } else if(us.find("进制转换")!=-1) { cout<<"输入要转换的数转换后的进制"; cin>>a1>>a9; if(powerful(a1,a9,"bcn","abc")) { cout<<"欢迎下次光临!"; cout<<endl; } else { cout<<"电脑出问题了,请下次再来"; cout<<"\n"; } } else if(us.find("取消")!=-1) { qvxiao(); } else if(us.find("分解质因数")!=-1) { cout<<"分解哪一个数?"; cin>>a1; fenjie(a1); cout<<endl; } else if(us.find("判断")!=-1&&us.find("质数")!=-1) { cout<<"哪一个数?"; cin>>a1; if(powerful(a1,0,"pnj","abc")) { cout<<"欢迎下次光临!"; cout<<endl; } else { cout<<"电脑出问题了,请下次再来"; cout<<"\n"; } } else if(us.find("远程")!=-1) { yuancheng(); } else if(us.find("关机")!=-1) { guanji(); } else if(us.find("倍")!=-1) { cout<<":"; cin>>a1; cout<<"倍:"; cin>>a9; hebeiwenti(a1,a9); } else if(us.find("结束")!=-1) { cout<<"好的"; exit(0); } else { cout<<"这个词条我还不会呢,我会加油继续学的!"; cout<<endl; } }” 如果我要将以上代码嵌入刚刚让你分析的代码中,用以实现在窗口中有一对话框,能根据输入内容给出相应服务,应如何修改我的代码(以上代码中运用的函数我已将其封装在源文件中了,函数名称不要修改)
10-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值