printfが使えないとき(そんな事ホトンドないだろうけど)

学校の演習室でSystem.out.printfが使えなかったときに考えたのをperlで書いた

for my $i(1..9){
  for my $j(1..9) {
    print map { " " } (0..(2 - int(log($i*$j)/log(10))));
    print $i*$j, ":";
  }
  print $/;
}


実行結果


[root@localhost ~]# perl -e 'for my $i(1..9){ for my $j(1..9) { print map { " " } (0..(2 - int(log($i*$j)/log(10)))); print $i*$j, ":"; } print $/; }'

1: 2: 3: 4: 5: 6: 7: 8: 9:
2: 4: 6: 8: 10: 12: 14: 16: 18:
3: 6: 9: 12: 15: 18: 21: 24: 27:
4: 8: 12: 16: 20: 24: 28: 32: 36:
5: 10: 15: 20: 25: 30: 35: 40: 45:
6: 12: 18: 24: 30: 36: 42: 48: 54:
7: 14: 21: 28: 35: 42: 49: 56: 63:
8: 16: 24: 32: 40: 48: 56: 64: 72:
9: 18: 27: 36: 45: 54: 63: 72: 81:


[root@localhost ~]# perl -e 'for my $i(31..39){ for my $j(31..39) { print map { " " } (0..(2 - int(log($i*$j)/log(10)))); print $i*$j, ":"; } print $/; }'
961: 992:1023:1054:1085:1116:1147:1178:1209:
992:1024:1056:1088:1120:1152:1184:1216:1248:
1023:1056:1089:1122:1155:1188:1221:1254:1287:
1054:1088:1122:1156:1190:1224:1258:1292:1326:
1085:1120:1155:1190:1225:1260:1295:1330:1365:
1116:1152:1188:1224:1260:1296:1332:1368:1404:
1147:1184:1221:1258:1295:1332:1369:1406:1443:
1178:1216:1254:1292:1330:1368:1406:1444:1482:
1209:1248:1287:1326:1365:1404:1443:1482:1521:


perlでprintfは使えますよ