今天第一次写学习笔记:
自从昨天就开始做一求最大公约数和最小公倍数的题目:
接收用户从键盘上输入两个整数,求这两个整数的最大公约数和最小
公倍数,并输出
分析:1.从键盘上输入两个整数,可以调用java.io包,来从键盘上输入两个整数:
public static void main(String args[])throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//定义两个整形,来存放从键盘上输入的两整数:
System.out.println("Enter Two Integers:");
int i=Integer.parseInt(br.readLine());
int j=Integer.parseInt(br.readLine());
2.然后就是解决如何求出最大公约数和最小公倍数的问题了:
要想求最小公倍数就必须先求出最大公约数,然后就很容易求最小公倍数了:
在编写方法是需要调用java.lang.Math包中的min()方法来求出两整数中最小的一个,以下是求x,y的公约数的方法:
int qiu()
{
int min1;
min1=Math.min(x,y);
int i;
outer:
for(i=2;i<=min1;i++) //注意此处一定是<=号
{
if(x%i==0 && y%i==0)
break outer;
}
if(i>min1)
return 0; //如果没有公约数返回0
else
return i; //如果有公约数返回公约数i
}
然后到主函数中去运算结果:
int temp; //中间的过度参数
do///使用while循环结构
{
Qiugongyue qgy;
qgy=new Qiugongyue(x,y);
temp=qgy.qiu();
if(temp!=0) //如果有公约数就对x,y进行变化
{
gy*=temp;
gb*=temp;
x=x/temp;
y=y/temp;
}
//min0=Math.min(x,y);
} while(temp!=0);//条件是此轮循环有公约数
gb=gb*x*y; //公倍数=公约数*x*y(此处的x和y是被处理过的)
此题目遇到不少的挫折,以致到今天才调试出来