class A{
public int gcd(int sum1,int sum2)
{ int i=0;
if(sum1<sum2)
{
int flag=0;
flag=sum2;
sum2=sum1;
sum1=flag;
gcd(sum1,sum2);
}
else if (sum1%sum2!=0)
gcd(sum2,sum1%sum2);
else
System.out.println (sum2);
return sum2;public class Test_diGui2 {
public static void main(String[] args) {
A a=new A();
System.out.println (a.gcd(1024,10224));
}
}
public int gcd(int sum1,int sum2)
{ int i=0;
if(sum1<sum2)
{
int flag=0;
flag=sum2;
sum2=sum1;
sum1=flag;
gcd(sum1,sum2);
}
else if (sum1%sum2!=0)
gcd(sum2,sum1%sum2);
else
System.out.println (sum2);
return sum2;public class Test_diGui2 {
public static void main(String[] args) {
A a=new A();
System.out.println (a.gcd(1024,10224));
}
}
else
{
System.out.println (sum2);
return sum2;
}
public int gcd(int sum1, int sum2) {
// int i = 0;
if (sum1 < sum2) {
int flag = 0;
flag = sum2;
sum2 = sum1;
sum1 = flag;
sum2 = gcd(sum1, sum2); } else if (sum1 % sum2 != 0)
sum2 = gcd(sum2, sum1 % sum2);
else {
System.out.println(sum2);
}
return sum2;
}
}public class Test_diGui2 { public static void main(String[] args) {
A a = new A();
System.out.println(a.gcd(1024, 10224)); }
}
这样应该对吧
public int gcd(int sum1,int sum2)
{ int i=0;
if(sum1<sum2)
{
int flag=0;
flag=sum2;
sum2=sum1;
sum1=flag;
return gcd(sum1,sum2);
}
else if (sum1%sum2!=0)
return gcd(sum2,sum1%sum2);
else {
System.out.println (sum2);
return sum2;
}
}
}public class Test_diGui2 {
public static void main(String[] args) {
A a=new A();
System.out.println (a.gcd(1024,10224));
}
}
int flag=0;
flag=sum2;
sum2=sum1;
sum1=flag;
return gcd(sum1,sum2);
为什么不是直接return gcd(sum2,sum1);呢?另外没有对负数之类的进行判断处理额
class A{
private int tmp;
public int gcd(int sum1,int sum2)
{ int i=0;
if(sum1<sum2)
{
int flag=0;
flag=sum2;
sum2=sum1;
sum1=flag;
gcd(sum1,sum2);
}
else if (sum1%sum2!=0)
gcd(sum2,sum1%sum2);
else{
System.out.println (sum2);
tmp = sum2;
}
return tmp;public class Test_diGui2 {
public static void main(String[] args) {
A a=new A();
System.out.println (a.gcd(1024,10224));
}
}