Category:
Computer
何かに触発されて、小町算の解を出力するプログラム(乗除は禁止ルール)。
# 普段からこんなコード書いてる訳じゃないのでご安心下さい
*
改良(269 bytes)。さらに、スペースと空白と改行を削除。オブジェクト指向でも何でもなくなった。
class K {Java でのコードゴルフは、static がネックか。
int D = 10, S = 100;
K(int s, int d, int t, String f) {
int n = t * 10 + d++, a = s + n, b = s - n;
if (d == D) {
char c = (a == S) ? '+' : (b == S) ? '-' : 0;
System.out.print(c != 0 ? f + c + n + '=' + S + "\n" : "");
} else {
new K(a, d, 0, f + '+' + n);
new K(s, d, n, f);
new K(b, d, 0, f + '-' + n);
}
}
public static void main(String[] args) {
new K(0, 1, 0, "");
}
}
# 普段からこんなコード書いてる訳じゃないのでご安心下さい
*
改良(269 bytes)。さらに、スペースと空白と改行を削除。オブジェクト指向でも何でもなくなった。
class K{static void K(int s,int d,int t,String f){int S=100,n=t*10+d++,a=s+n,b=s-n;
if(d!=10){K(s,d,n,f);K(a,d,0,f+'+'+n);K(b,d,0,f+'-'+n);}
else{System.out.print(f.equals(f+=(a==S)?'+':(b==S)?'-':"")?"":f+n+'='+S+'\n');}}
public static void main(String[]v){K(0,1,0,"");}}
Comments