Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

F91 - f91

McCarthy é um teórico famoso de ciência da computação. No seu trabalho, ele definiu uma função recursiva, chamada f91, que recebe como entrada um inteiro N e retorna um inteiro positivo definido como a seguir:

  • Se N ≤ 100, então f91 (N) = f91 (f91 (N + 11));
  • Se N ≥ 101, então f91 (N) = N - 10.

Escreva um programa que computa a função f91 de McCarthy.

Entrada

O arquivo de entrada consiste de uma série de inteiros positivos, cada inteiro é no máximo 1.000.000. Há no máximo 250.000 casos de teste. Cada linha possui somente um número. O fim da entrada é alcançada quando o número 0 é encontrado. O número 0 não deve ser considerado como parte do conjunto de teste.

Saída

O programa deve imprimir cada resultado em uma linha, seguindo o formato fornecido no exemplo de saída.

Exemplo

Entrada:
500
91
0

Saída:
f91(500) = 490
f91(91) = 91


Autor do Problema: David Déharbe

Adicionado por:Wanderley Guimarăes
Data:2007-10-02
Tempo limite:3s
Tamanho do fonte:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Linguagem permitida:Todas exceto: ASM64 CLOJURE ERL FSHARP JS-RHINO PERL6 PY_NBC SCALA TCL
Origem:Segunda Seletiva para Maratona de Programacao UFRN - 2004

hide comments
2015-04-18 20:50:14 José Carlos
Esse programa é pegadinha.
2014-08-09 18:56:13 Renato Uchoa [IFTO-Paraiso]
Escrevi o algoritmo em C++, dava tempo limite excedido. Transformei o mesmo código em C e foi aceito. Vai entender.

Last edit: 2014-08-13 02:21:26
2014-07-27 09:22:21 Ivo
Galera, se n<=100 -> print 91
else print numero-10
2014-03-15 03:14:26 José Raimundo [IFPB - GBA]
Alguém poderia me explicar (ou postar um trecho do código que năo comprometa na busca pela soluçăo do restante do algoritmo) como é a entrada de dados desse problema? (se possível em Java).. Abraço;
2013-12-24 09:16:57 Altamir Gomes Bispo Junior [UFSCar]
"Premature optimization is the root of all evil"

A recursăo năo é má em si mesma, técnicas de programaçăo dinâmica săo baseadas no conceito de recursăo por exemplo...
2013-12-11 20:31:03 Alexandre Vieira dos Santos
Esse ambiente foi feito sem pensar em quem usa java.. fiz esse algoritmo sem usar repetiçăo, com os recursos mais rapidos que conheco, e ainda assim deu TLE... vou tentar em C, só pra comprovar minha teoria.. :/
2013-11-26 17:38:33 Weslly
Kuesley Fernandes Nascimento tbm to com esse problema. tempo limite excedido sempre(com java)

Last edit: 2013-11-26 17:38:50
2013-11-15 15:34:44 Kuesley Fernandes Nascimento
Pessoal, estou testando o ambiente e estou enfrentando o mesmo problema do Chris Nic. Em java usa muita memória e sempre dá "tempo limite excedido".
2013-09-17 01:32:39 Alexandre Henrique Afonso Campos
Em python, TLE. Mesmo algoritmo em C, AC.
2013-07-16 06:15:17 Eduardo Maia [UECE]

luksky, năo precisa ser exatamente como está escrito no problema. basta vocę entrar com um número, dar enter e já sair o resultado. isso é válido. já fiz isso em vários outros problemas aqui do spoj. sua tela vai ficar algo como:

500
f91(500) = 490
91
f91(91) = 91
0

espero ter ajudado
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.