250
問題文(要ログイン)
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つしかないので結構無理やり解いてます。