過去ログ

いちごみるく
FOR a=1 TO 9
FOR b=1 TO 9
FOR c=1 TO 9
FOR d=1 TO 9
IF a*b*c*d=10 THEN LET s1=s1+1
IF a*b*c=10*d THEN let s2=s2+1
IF a*b*d=10*c THEN LET s3=s3+1
IF a*c*d=10*b THEN LET s4=s4+1
IF a*d=10*b*c THEN LET s5=s5+1
IF a*c=10*b*d THEN LET s6=s6+1
IF a*b=10*c*d THEN LET s7=s7+1
IF a=10*b*c*d THEN LET s8=s8+1
NEXT d
NEXT c
NEXT b
NEXT a
PRINT s1;s2;s3;s4;s5;s6;s7;s8;s1+s2+s3+s4+s5+s6+s7+s8
END
こうじゃなくても計算途中で少数がでても正しい値が出ますか?

c++で
void f() {
int ans = 0;
rep2(i, 1, 10)rep2(j, 1, 10)rep2(k, 1, 10)rep2(l, 1, 10) {
rep(m, 2)rep(n, 2)rep(o, 2) {
int x = i * j * k * l;
int y = 1;
if (m)y *= j * j;
if (n)y *= k * k;
if (o)y *= l * l;
if (x == y * 10)ans++;
}
}
cout << ans << endl;
}
   7月22日(木) 2:59:13     50689

過去問題一覧へ戻る