問題文(要ログイン)
public class MultiNumber { public String check(int number) { if(number < 10) { return "NO"; } String num = Integer.toString(number); //String.valuOf(number); for(int i = 1; i < num.length(); i++) { String a = num.substring(0, i); String b = num.substring(i); int n = 1, m = 1; for(int j = 0; j < a.length(); j++) { n *= Integer.parseInt(a.substring(j, j+1)); } for(int j = 0; j < b.length(); j++) { m *= Integer.parseInt(b.substring(j, j+1)); } if(n == m) { return "YES"; } } return "NO"; } }Javaでint→StringとString→intの変換する方法がわからなくて手間取った。 今気づいたけど、このプログラムちょっと無駄なことしてるね。
500
問題文
public class PrimeSoccer { public double getProbability(int skillOfTeamA, int skillOfTeamB) { double a = 0.0; double b = 0.0; //2 a += ((double)skillOfTeamA/100.0) * ((double)skillOfTeamA/100.0) * 153.0 * Math.pow((double)(100 - skillOfTeamA)/100.0, 16.0); //3 a += Math.pow((double)skillOfTeamA/100.0, 3.0) * 816.0 * Math.pow((double)(100 - skillOfTeamA)/100.0, 15.0); //5 a += Math.pow((double)skillOfTeamA/100.0, 5.0) * 8568.0 * Math.pow((double)(100 - skillOfTeamA)/100.0, 13.0); //7 a += Math.pow((double)skillOfTeamA/100.0, 7.0) * 31824.0 * Math.pow((double)(100 - skillOfTeamA)/100.0, 11.0); //11 a += Math.pow((double)skillOfTeamA/100.0, 11.0) * 31824.0 * Math.pow((double)(100 - skillOfTeamA)/100.0, 7.0); //13 a += Math.pow((double)skillOfTeamA/100.0, 13.0) * 8568.0 * Math.pow((double)(100 - skillOfTeamA)/100.0, 5.0); //17 a += Math.pow((double)skillOfTeamA/100.0, 17.0) * 18.0 * (double)(100 - skillOfTeamA)/100.0; //2 b += ((double)skillOfTeamB/100.0) * ((double)skillOfTeamB/100.0) * 153.0 * Math.pow((double)(100 - skillOfTeamB)/100.0, 16.0); //3 b += Math.pow((double)skillOfTeamB/100.0, 3.0) * 816.0 * Math.pow((double)(100 - skillOfTeamB)/100.0, 15.0); //5 b += Math.pow((double)skillOfTeamB/100.0, 5.0) * 8568.0 * Math.pow((double)(100 - skillOfTeamB)/100.0, 13.0); //7 b += Math.pow((double)skillOfTeamB/100.0, 7.0) * 31824.0 * Math.pow((double)(100 - skillOfTeamB)/100.0, 11.0); //11 b += Math.pow((double)skillOfTeamB/100.0, 11.0) * 31824.0 * Math.pow((double)(100 - skillOfTeamB)/100.0, 7.0); //13 b += Math.pow((double)skillOfTeamB/100.0, 13.0) * 8568.0 * Math.pow((double)(100 - skillOfTeamB)/100.0, 5.0); //17 b += Math.pow((double)skillOfTeamB/100.0, 17.0) * 18.0 * (double)(100 - skillOfTeamB)/100.0; double c = a*b; return a+b-c; } }ただの計算。プログラムより電卓でやったほうがいいんじゃね?ってレベル。
確率の計算です。組み合わせはGoogle電卓で出した。
18までの素数は7つしかないので結構無理やり解いてます。
0 件のコメント:
コメントを投稿