|
いちごみるく |
|
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 |