Il set up:
Un social network riporta il numero di voti che un post ha in due modi: il numero di voti netti ( voti totali - voti totali ridotti) e la percentuale di voti che sono stati votati , arrotondata al numero intero più vicino (0,5 arrotondamenti per eccesso). Il numero di voti netti è un numero intero (non necessariamente positivo) e il secondo è garantito per essere compreso tra 0 e +100 inclusi. Il numero di voti positivi e il numero di voti negativi sono numeri interi a 32 bit zero o positivi (è possibile specificare con segno o senza segno). Supponiamo che se ci sono zero voti totali, la percentuale votata viene indicata come zero.
La sfida:
Dati questi due numeri interi (voti netti e% votati), qual è il programma più breve che puoi scrivere che determina il numero più basso di voti totali post ricevuti, con tutti i vincoli sopra indicati soddisfatti?
I vincoli di input sono garantiti. Se l'input non soddisfa i vincoli di cui sopra, il comportamento del programma dipende da te. Complimenti bonus se non entra in un ciclo infinito o altrimenti si blocca. Considera di restituire un numero negativo se desideri ulteriori indicazioni.
Regole generali:
- Questo è code-golf , quindi vince la soluzione valida più breve (misurata in byte).
- Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. Complimenti bonus per un linguaggio Web lato client come Javascript.
- Se hai soluzioni interessanti in più lingue, pubblicale separatamente .
- Per la tua risposta valgono regole standard , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri e il tipo di ritorno corretti o programmi completi. La tua chiamata.
- Sono vietate le scappatoie predefinite .
- Se possibile, aggiungi un link con un test per il tuo codice.
- Inoltre, aggiungi una spiegazione del funzionamento del codice.
- Tieni presente che se stai eseguendo un'operazione di divisione di numeri interi che si tronca (ad es. 20/3 = 6) anziché arrotondamenti , ciò potrebbe non essere del tutto corretto.
- Sono benvenuti ulteriori casi di test che esplorano i casi limite nei vincoli precedenti.
- Mentre il tipo di ritorno previsto è numerico, è possibile utilizzare "false" booleano al posto di 0 .
Esempi di test:
La prima colonna è solo un numero di riferimento incluso per facilitare la discussione.
ref net %up answer
1 0 0 => 0
2 -5 0 => 0
3 -4 17 => 1
4 -3 29 => 2
5 -2 38 => 3
6 -1 44 => 4
7 0 50 => 1
8 5 100 => 5
9 4 83 => 5
10 3 71 => 5
11 2 63 => 5
12 1 56 => 5
13 1234 100 => 1234
14 800 90 => 894 (tip: don't refer to this as the "last test case;" others may be added.)
1000, 100
. Puoi confermare che la risposta prevista è 1000
?