import java.util.*;
public class Test14{
public static void main(String args[]){
String s = "50%:20%:30%";
calc(s);
}
public static void calc(String s){
String s1[] = s.split(":");
int a = Integer.parseInt((s1[0]).substring(0,s1[0].length()-1));
int b = Integer.parseInt((s1[1]).substring(0,s1[1].length()-1));
int c = Integer.parseInt((s1[2]).substring(0,s1[2].length()-1));
int g = getMaxGYS(a,b,c);
System.out.println(a/g+":"+b/g+":"+c/g);
}
//取得最大公约数,参数限定死为三个,如果要改成多个可以换成数组。
public static int getMaxGYS(int a,int b,int c){
int maxgys =1;
int z = 0;
if(a>=b && a>=c)z=a;
else if(b>=a && b>=c) z=b;
else z=c;
for(int i=2;i<=z/2+1;i++){
if(a%i==0 && b%i==0 && c%i==0){maxgys = i;}
}
return maxgys;
}
}
ps:费了很大功夫写完调试完。本来知道有点麻烦的,看到你给的财富值比较少,没想写的,不过我看你总计也只有16财富值,就给了10个,还算大方。再者我感觉这个功能还是有点儿意思,还是觉得用点时间写下来。希望对你有所帮助。
算法很重要哦~~~~~