Java初心者の競技プログラミング日記

Dvorak配列でjavaを書いてます

メソッド(数学・計算)

n以下のすべての素数をリストで返すメソッド

エラトステネスのふるいを用いて、n以下のすべての素数をリストアップするメソッド。ふるい終わったあとの配列が穴だらけになって不便なので、単にそれをリストに詰め込んだだけです。 static List<Integer> primeList(int n) { List<Integer> list = new ArrayList<>(); boole</integer></integer>…

倍数判定メソッド

long型に収まる数字ならlong型に入れて普通に割り算すればいいのだが、ここではlong型に入らない何千何万桁の数字が、ある数の倍数かどうかを判定するメソッドを紹介する。 static boolean isMultiple (String s, int base, int m) { int temp = 0; for (int…

Javaで使える数学系メソッドまとめ

//最大公約数・最小公倍数(セットで使う) static int gcd (int a, int b) {return b>0?gcd(b,a%b):a;} static int lcm (int a, int b) {return a*b/gcd(a,b);} //素数判定 static boolean isPrime (int n) { if (n==2) return true; if (n<2 || n%2==0) re…

基数変換メソッド

n進数snをm進数に変換するメソッド。 使用できる基数(n,m)は2以上36以下。 static String BaseConversion (String sn, int n, int m) { String sm = Long.toString(Long.parseLong(sn,n),m); return sm; } 使用例 //10進数5を2進数に System.out.println(B…

二点間の距離を求めるメソッド

二点間の距離には、ユークリッド距離とマンハッタン距離の二種類がある。・ユークリッド距離:二点間の最短距離 ・マンハッタン距離:座標軸に平行にのみ移動できる場合の最短距離以下のサイトで二種類の距離について詳しく解説されています L1距離(マンハ…

階乗を求めるメソッド

再帰関数を用いて階乗を求めるメソッド。 static long Factorial (int i) { if (i == 1) {return 1;} else {return i*Factorial(i-1);} } i=3のとき、 ・Factorial(3) = return 3*Factorial(2) ・Factorial(2) = return 2*Factorial(1) ・Factorial(1) = ret…

素数判定メソッド

値が素数かどうか判定するメソッド。 static boolean IsPrime(int n) { if (n < 2) return false; else if (n == 2) return true; else if (n%2 == 0) return false; double sqrtNum = Math.sqrt(n); for (int i=3; i<=sqrtNum; i+=2) { if (n%i == 0) {retu…

最大公約数・最小公倍数を求めるメソッド

ユークリッドの互除法を用いて、 二つの値の最大公約数および最小公倍数を求めるメソッド。 //最大公約数gcd static int gcd (int a, int b) { int temp; while((temp = a%b)!=0) { a = b; b = temp; } return b; } //最小公倍数lcm static int lcm (int a, …