Java, 540 caratteri
Attenzione: il numero di taglie attive è ~ 470. Questo codice accederà a una pagina su StackOverflow più volte. Potresti metterti nei guai con loro per aver fatto così tante richieste di dati.
import java.io.*;import java.net.*;public class B{public static void main(String[]A){String u="http://stackoverflow.com/questions",d;Long i,s=i=0L,n=i.parseLong(o(u).replaceAll("^.*b.>(\\d+).*$","$1"));while(i++<n){d=o(u+"?pagesize=1&sort=featured&page="+n).replaceAll("^.*ion.>.(\\d+).*$","$1");s+=d.matches(".*\\D.*")?0:n.parseLong(d);}System.out.print(s);}static String o(String s){String d="";try{BufferedReader r=new BufferedReader(new InputStreamReader(new URL(s).openStream()));while((s=r.readLine())!=null)d+=s;}finally{return d;}}}
Il mio output è stato 23400, ma quando ho eseguito il codice @ TonyH, ho ottenuto 37550. Cattive notizie.
Codice grazioso:
import java.io.*;
import java.net.*;
public class StackOverflowBounty {
public static void main(String[] args) {
String u = "http://stackoverflow.com/questions", d;
Long i, s = i = 0L, n = i.parseLong(o(u).replaceAll("^.*b.>(\\d+).*$", "$1"));
while (i++ < n) {
d = o(u + "?pagesize=1&sort=featured&page=" + n).replaceAll("^.*ion.>.(\\d+).*$", "$1");
s += d.matches(".*\\D.*") ? 0 : n.parseLong(d);
}
System.out.print(s);
}
static String o(String s) {
String d = "";
try {
BufferedReader r = new BufferedReader(new InputStreamReader(new URL(s).openStream()));
while ((s = r.readLine()) != null) {
d += s;
}
} finally {
return d;
}
}
}
Il modo in cui funziona è semplice. Legge dall'URL http://stackoverflow.com/questions"per determinare il numero di domande che hanno taglie (nota: se il numero aumenta, il programma fallisce, ma se diminuisce, funziona bene). Si cerca per questo numero utilizzando l'espressione regolare: b.>(\\d+). Questo ha funzionato in tutti i test fino ad oggi, ma se qualcuno ha posto una domanda che corrisponde a quella regex, potrebbe non funzionare.
Quindi, apriamo l'URL http://stackoverflow.com/questions?pagesize=1&sort=featured&page=+ current question #. In altre parole, apriamo una nuova pagina per ogni domanda in primo piano e imponiamo che il numero di domande sia solo 1, quindi le otterremo tutte. La parte della reputazione corrisponderà sempre ion.>.(\\d+), quindi la uso per trovarla. Ho diviso l'operazione in due parti in modo da poter verificare in modo economico se il numero di domande ridotto (ovvero la stringa restituita non è un numero intero).
Quindi, riassumiamo tutta la reputazione e la stampiamo.
Il mio computer ha impiegato circa 3 minuti e 20 secondi.
Qualcuno sa perché non sta stampando il numero giusto?