Últimas notícias

 

 

Alguns problemas interessantes:

1. Faça uma função

int factorial(int n) { ... }

 em C/C++/Java que retorna o fatorial de um número. Não use while-do, do-while, for, if, operador ?: e comando goto. O comando switch é permitido. Não use a fórmula de Stirling para calcular o fatorial ou alguma biblioteca (naturalmente).

2. Faça a função fatorial do problema 1, mas sem usar  também o switch.

3. Encontre uma maneira de fazer todas as comparações entre inteiros utilizando apenas o == de C/C++/Java.

4. O mesmo que 3, mas comparando apenas com 0.

5. Faça o operador & de C/C++/Java usando apenas * e /. 

6. Troque o valor de duas variáveis sem utilizar uma variável adicional (utilize o ‘ou exclusivo’, operador ‘^’, se não me engano, de C. Veja as propriedades deste operador).  

7. Faça uma lista encadeada que pode ser percorrida para frente e para trás, mas cada nó tem apenas um ponteiro. Faça em C/C++. Utilize o ‘ou exclusivo’.

8. Encontre uma maneira de fazer qualquer programa com uma linguagem que utiliza apenas dois caracteres.

 

9. Encontre uma maneira de fazer qualquer programa com uma linguagem que utiliza apenas um único caráter. Os programas seriam algo do tipo 111111, 11111111111111111  ou 11111111111111111111111111111111111111111. Obviamente, dado um arquivo com um programa nesta linguagem, a única informação importante é o tamanho do arquivo.

 

10. Faça um compressor de arquivos, do tipo do zip, arj, etc, que seja capaz de comprimir o filme ‘Cidade de Deus’ em DVD para apenas 10000 bytes. Faça o mesmo para 1000 bytes. Faça agora para 1 byte. Repita para 1 bit (agora está bom!).

 

11. Projete um computador que utiliza apenas 10 instruções. Repita para 5 instruções.

 

12. Projete um computador que utiliza apenas uma única instrução. É o suficiente. Se a sua definição de computador é mais abrangente, não é necessária nenhuma instrução.

 

13. Encontre uma maneira de fazer qualquer programa em no máximo 100 linhas.

 

14. Encontre uma maneira de fazer qualquer programa utilizando no máximo um único while e uns cinco ifs (pense em um interpretador ...).