(UVA) 344 - Roman Digititis - Solução
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
Main processando = new Main();
processando.takeInput();
System.exit(0);
}
List<Integer> geraQuantidade(int numeroEntrada) {
List<Integer> lista = new ArrayList<Integer>();
int n = 1;
int i = 0;
int v = 0;
int x = 0;
int l = 0;
int c = 0;
while (n <= numeroEntrada) {
int valor = n;
i += verificaI(n);
v += verificaV(n);
x += verificaX(n);
if (n < 10) {
}
else if (n >= 10 && n < 20) {
x++;
}
else if (n >= 20 && n < 30) {
x += 2;
}
else if (n >= 30 && n < 40) {
x += 3;
}
else if (n >= 40 && n < 50) {
l++;
x++;
}
else if (n >= 50 && n < 60) {
l++;
}
else if (n >= 60 && n < 70) {
l++;
x++;
}
else if (n >= 70 && n < 80) {
l++;
x += 2;
}
else if (n >= 80 && n < 90) {
l++;
x += 3;
}
else if (n >= 90 && n < 100) {
c++;
x++;
}
else { // n == 100
c++;
}
n++;
}
lista.add(i);
lista.add(v);
lista.add(x);
lista.add(l);
lista.add(c);
return lista;
}
int verificaI(int valor) {
int qteI = 0;
if ((valor+1)%5 == 0) {
qteI++;
}
else {
while (valor%5 != 0) {
qteI++;
valor--;
}
}
return qteI;
}
int verificaV(int valor) {
int qteV = 0;
if ((valor+1)%5 == 0 && ((valor+1)%10 != 0)) { // para quando é 4, 9, 14, 19, 24, ...
qteV++;
}
else if ((valor%5 == 0) && (valor%10 != 0)) { // para quando é 5
qteV++;
}
else if ((valor%5 != 0) && (valor%10 > 5) && (valor%10 < 9)) {
qteV++;
}
return qteV;
}
int verificaX(int valor) {
int qteX = 0;
if ((valor+1)%10 == 0) {
qteX++;
}
return qteX;
}
void takeInput() throws NumberFormatException, IOException {
String line = "";
StringTokenizer tokenizer = null;
int i = 0;
List<Integer> lista = new ArrayList<Integer>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (((line = br.readLine()) != null)) {
tokenizer = new StringTokenizer(line);
i = Integer.parseInt(tokenizer.nextToken());
if (i == 0) {
return;
}
lista = geraQuantidade(i);
System.out.println(i + ": " + lista.get(0) + " i, " + lista.get(1) + " v, " + lista.get(2) + " x, " + lista.get(3) + " l, " + lista.get(4) + " c");
}
}
}
import java.util.*;
class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
Main processando = new Main();
processando.takeInput();
System.exit(0);
}
List<Integer> geraQuantidade(int numeroEntrada) {
List<Integer> lista = new ArrayList<Integer>();
int n = 1;
int i = 0;
int v = 0;
int x = 0;
int l = 0;
int c = 0;
while (n <= numeroEntrada) {
int valor = n;
i += verificaI(n);
v += verificaV(n);
x += verificaX(n);
if (n < 10) {
}
else if (n >= 10 && n < 20) {
x++;
}
else if (n >= 20 && n < 30) {
x += 2;
}
else if (n >= 30 && n < 40) {
x += 3;
}
else if (n >= 40 && n < 50) {
l++;
x++;
}
else if (n >= 50 && n < 60) {
l++;
}
else if (n >= 60 && n < 70) {
l++;
x++;
}
else if (n >= 70 && n < 80) {
l++;
x += 2;
}
else if (n >= 80 && n < 90) {
l++;
x += 3;
}
else if (n >= 90 && n < 100) {
c++;
x++;
}
else { // n == 100
c++;
}
n++;
}
lista.add(i);
lista.add(v);
lista.add(x);
lista.add(l);
lista.add(c);
return lista;
}
int verificaI(int valor) {
int qteI = 0;
if ((valor+1)%5 == 0) {
qteI++;
}
else {
while (valor%5 != 0) {
qteI++;
valor--;
}
}
return qteI;
}
int verificaV(int valor) {
int qteV = 0;
if ((valor+1)%5 == 0 && ((valor+1)%10 != 0)) { // para quando é 4, 9, 14, 19, 24, ...
qteV++;
}
else if ((valor%5 == 0) && (valor%10 != 0)) { // para quando é 5
qteV++;
}
else if ((valor%5 != 0) && (valor%10 > 5) && (valor%10 < 9)) {
qteV++;
}
return qteV;
}
int verificaX(int valor) {
int qteX = 0;
if ((valor+1)%10 == 0) {
qteX++;
}
return qteX;
}
void takeInput() throws NumberFormatException, IOException {
String line = "";
StringTokenizer tokenizer = null;
int i = 0;
List<Integer> lista = new ArrayList<Integer>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (((line = br.readLine()) != null)) {
tokenizer = new StringTokenizer(line);
i = Integer.parseInt(tokenizer.nextToken());
if (i == 0) {
return;
}
lista = geraQuantidade(i);
System.out.println(i + ": " + lista.get(0) + " i, " + lista.get(1) + " v, " + lista.get(2) + " x, " + lista.get(3) + " l, " + lista.get(4) + " c");
}
}
}
Comments
Post a Comment