se me ocurren dos formas. pero antes, no comprendo si la razon de nombrar los INPUTs al estilo arrays es para recibir un array en php. si es el caso, lo unico que necesitas hacer es asignarle el mismo nombre a todos los campos y al final agregarle los corchetes []. luego en javascript es cuestion de tomar la referencia de todos los elementos por ese nombre y recorrerlo. en DOM, cuando mas de un elemento comparte el mismo valor en el atributo name se crea una coleccion de elementos el cual puedes recorrerlo por indices.
Código:
...
// asumiendo que todos los campos se llaman mon[];
for (i=0; document.forms[0]['mon[]'][i]; i++) {
total = total + Number(document.forms[0]['mon[]'][i].value);
}
...
si el proposito de nombrar los campos de forma secuencial es otra, puedes ubicar todos los campos en un elemento contenedor, tomar la referencia de ese campo, e invocar getElementsByTagName desde dicho elemento para capturar todos los INPUTs. hasta cierto punto es parecido a la alternativa anterior.
Código:
...
// #contenedor es el elemento que contiene todos los INPUTs;
var inputs = document.getElementById("contenedor").getElementsByTagName("input");
for (i=0; inputs[i]; i++) {
total = total + Number(inputs[i].value);
}
...