算法問題 public int calc(int a,int b){ if(a<=0||b<=0){ return 0; } while(a!=b){ if(a>b){ a-=b; }else{ b-=a; } } return a; }怎樣把循環減到最少!效率最高! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public int calc(int a,int b){ if(a<=0||b<=0){ return 0; } while(a!=b&&a*b!=0){ if(a>b){ a=a/b; }else{ b=a/a; } } return a; } 纠正一下public int calc(int a,int b){ if(a <=0||b <=0){ return 0; } while(a!=b&&a*b!=0){ if(a>b){ a=a/b; }else{ b=b/a; } } return a; } public int calc(int a,int b){ if(a<=0||b<=0) { return 0; } else if(a==b) { return a; } if(a<b) { int mid = a; a = b; b = mid; } return a%b==0?b:a%b}似乎有点奇怪,不过按结果这么应该没错吧( ̄︶ ̄)↗ 错了,呵呵,把%弄成/了public int calc(int a,int b){ if(a <=0||b <=0){ return 0; } while(a!=b&&a*b!=0){ if(a>b){ a=a%b; }else{ b=b%a; } } return a; }不过似乎那个else没用阿,是不是应该这样:public int calc(int a,int b){ if(a <=0||b <=0){ return 0; } while(a!=b&&a*b!=0){ if(a>b){ a=a%b; }else{ b=b%a; a=a+b;b=a-b;a=a-b; } } return a; } 答:参考代码:public int calc(int a,int b){ if(a<=0||b<=0){ return 0; } while(a!=b) { a %= b; if(a==0) return b; b %= a; if(b==0) return a; } return a; } pulbic int calc(int a,int b){ if(a <= 0 || b <= 0) { return 0; } while(a != b){ a = a > b ? a - b : b - a; } return a;} 貌似你那个while循环中,若是特定的数的话,会循环死 为什么有了if(a <=0||b <=0){ return 0; } 还要判断 a*b!=0? 命令行不能云行class文件 郁闷中 关于file类的构造方法参数 一个简单的问题!!!! 数据集返回类型问题? 创建一个ADT类型的(class)的数组对象的时候,是new出来的,接下来对它的对象进行操作的时候为什么回出现空指针异常?(有代码) **********我才知道Unicode在java中可作操作符,请看实例**************** 请问怎么设置环境变量 粉嫩新人求牛人解惑啊 调查:你现在用哪种开发工具,感觉如何? 求教关于java的for循环问题 有没有将html源文件展示成dom树的java开源项目
if(a<=0||b<=0){
return 0;
}
while(a!=b&&a*b!=0){
if(a>b){
a=a/b;
}else{
b=a/a;
}
}
return a;
}
public int calc(int a,int b){
if(a <=0||b <=0){
return 0;
}
while(a!=b&&a*b!=0){
if(a>b){
a=a/b;
}else{
b=b/a;
}
}
return a;
}
public int calc(int a,int b)
{
if(a<=0||b<=0)
{
return 0;
}
else if(a==b)
{
return a;
}
if(a<b)
{
int mid = a;
a = b;
b = mid;
}
return a%b==0?b:a%b
}似乎有点奇怪,不过按结果这么应该没错吧( ̄︶ ̄)↗
public int calc(int a,int b){
if(a <=0||b <=0){
return 0;
}
while(a!=b&&a*b!=0){
if(a>b){
a=a%b;
}else{
b=b%a;
}
}
return a;
}
不过似乎那个else没用阿,是不是应该这样:
public int calc(int a,int b){
if(a <=0||b <=0){
return 0;
}
while(a!=b&&a*b!=0){
if(a>b){
a=a%b;
}else{
b=b%a;
a=a+b;b=a-b;a=a-b;
}
}
return a;
}
if(a<=0||b<=0){
return 0;
}
while(a!=b)
{
a %= b;
if(a==0) return b;
b %= a;
if(b==0) return a;
}
return a;
}
pulbic int calc(int a,int b){
if(a <= 0 || b <= 0)
{
return 0;
}
while(a != b){
a = a > b ? a - b : b - a;
}
return a;
}
if(a <=0||b <=0){
return 0;
}
还要判断 a*b!=0?