42.最大公约数和最小公倍数
43.分数比较
44.分数之和
42.最大公约数和最小公倍数
求任意两个正整数的最大公约数和(GCD)和最小公倍数(LCM)
*问题分析与算法设计
手工方式求两个正整数的蝚大公约数的方法是用辗转相除法,在程序中可以模拟这种方式。
*程序与程序注释
#include<stdio.h>
void main()
{
int a,b,num1,num2,temp;
printf("Input a & b:");
scanf("%d%d",&num1,&num2);
if(num1>num2) /*找出两个数中的较大值*/
{
temp=num1; num1=num2; num2=temp; /*交换两个整数*/
}
a=num1; b=num2;
while(b!=0) /*采用辗转相除法求最大公约数*/
{
temp=a%b;
a=b;
b=temp;
}
printf("The GCD of %d and %d is: %d\n",num1,num2,a); /*输出最大公约数*/
printf("The LCM of them is: %d\n",num1*num2/a); /*输出最小公倍数*/
}
*运行结果
1.Input a & b: 20 55
The GCD of 20 and 55 is: 5
The LCM of them is: 220
2.Input a & b: 17 71
The GCD of 17 and 71 is: 1
The LCM of them is: 1207
3.Input a & b: 24 88
The GCD of 24 and 88 is: 8
The LCM of them is: 264
4.Input a & b: 35 85
The GCD of 35 and 85 is: 5
The LCM of them is: 595
*思考题
求一个最小的正整数,这个正整数被任意n(2<=n<=10)除都是除不尽的,而且余数总是(n-1)。例如:被9除时的余数为8。要求设计一个算法,不答应枚举与除2、除3、....、除9、除10有关的命令,求出这个正整数。
43.分数比较
比较两个分数的大小。
*问题分析与算法设计
人工方式下比较分数大小最常用的方法是:进行分数的通分后比较分子的大小。可以编程模拟手式方式。
*程序与程序注释
#include<stdio.h>
int zxgb(int a,int b);
void main()
{
int i,j,k,l,m,n;
printf("Input two FENSHU:\n");
scanf("%d/%d,%d/%d",&i,&j,&k,&l); /*输入两个分数*/
m=zxgb(j,l)/j*i; /*求出第一个分数通分后的分子*/
n=zxgb(j,l)/l*k; /*求出第二个分数通分后的分子*/
if(m>n) printf("%d/%d>%d/%d\n",i,j,k,l); /*比较分子的大小*/
else if(m==n) printf("%d/%d=%d/%d\n",i,j,k,l); /*输出比较的结果*/
else printf("%d/%d<%d/%d\n",i,j,k,l);
}
int zxgb(int a,int b)
{
long int c;
int d;
if(a<b) c=a,a=b,b=c; /*若a<b,则交换两变量的值*/
for(c=a*b;b!=0;)
{
d=b; b=a%b; a=d;
}
return (int)c/a;
}
*运行结果
输入: 4/5,6/7 输出: 4/5<6/7
输入: 8/4,16/32 输出: 8/4>16/32
输入:16/32,4/8 输出: 16/32=4/8
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |