J'ai essayé l'examen d'entrée de Google (non officiel) [java]

[J'ai essayé l'examen d'entrée de Google (non officiel)](http://yasigani-ni.com/every-day/google%E3%81%AE%E5%85%A5%E7%A4%BE% E8% A9% A6% E9% A8% 93% E9% 9D% 9E% E5% 85% AC% E5% BC% 8F% E3% 81% AB% E3% 83% 81% E3% 83% A3% E3% 83% AC% E3% 83% B3% E3% 82% B8% E3% 81% 97% E3% 81% A6% E3% 81% BF% E3% 81% 9F /)

Je l'ai essayé avec java.

Conseils

Si vous utilisez une fonction qui compte le nombre de 1 qui apparaissent, la quantité de calcul augmente à mesure que le nombre augmente, il est donc efficace de calculer séquentiellement sans en faire une fonction.

hoge.java


class hoge{
	public static void main(String[] args) {		
		int ret =0;
		for(int j=1;j<Integer.parseInt(args[0]);j++){
			ret +=((" "+j+" ").split("1").length-1);
			if(j<=ret){
				System.out.println(ret);
			}
		}
	}
}

résultat

>java hoge 200000
1
199981
199982
199983
199984
199985
199986
199987
199988
199989
199990
199992
199993
199994
199995
199996
199997
199998
199999
200000

répondre

199981

Impressions

Puisqu'il y a un calcul, j'ai l'impression qu'il peut être accéléré en échangeant des nombres, mais j'ai arrêté parce qu'il n'apparaissait pas dans la formule.

Alternativement, il peut être plus rapide de dériver une expression approximative, puis de deviner. Cela prendra du temps si vous n'utilisez pas la bibliothèque.

Recommended Posts

J'ai essayé l'examen d'entrée de Google (non officiel) [java]
J'ai essayé Drools (Java, InputStream)
J'ai essayé d'utiliser Java REPL
J'ai essayé la métaprogrammation avec Java
J'ai essayé la communication UDP avec Java
J'ai essayé le framework Java "Quarkus"
J'ai essayé d'utiliser l'API Java8 Stream
J'ai essayé d'utiliser JWT en Java
J'ai essayé de résumer l'apprentissage Java (1)
J'ai essayé de résumer Java 8 maintenant
J'ai essayé d'utiliser le mémo Java LocalDate
J'ai essayé d'utiliser Google HttpClient de Java
J'ai essayé le mappeur d'objets de Cassandra pour Java
J'ai essayé de résumer les expressions Java lambda
Java9 était inclus, j'ai donc essayé jshell.
J'ai essayé d'utiliser OpenCV avec Java + Tomcat
J'ai essayé de mettre facilement Java sur mon Mac
J'ai essayé de faire une authentification de base avec Java
java j'ai essayé de casser un simple bloc
J'ai essayé de frapper une méthode Java d'ABCL
J'ai essayé Spring.
J'ai essayé de mettre Tomcat
J'ai essayé youtubeDataApi.
J'ai essayé de refactoriser ①
J'ai essayé de créer une compétence Alexa avec Java
J'ai essayé FizzBuzz.
J'ai essayé de casser le bloc avec java (1)
J'ai essayé d'exécuter Java dans un terminal Mac
J'ai essayé JHipster 5.1
J'ai essayé le type d'entrée / sortie de Java Lambda ~ édition POJO ~
J'ai essayé d'implémenter TCP / IP + BIO avec JAVA
J'ai essayé d'implémenter la notification push Firebase en Java
J'ai essayé de faire fonctionner SQS en utilisant AWS Java SDK
# 2 [Note] J'ai essayé de calculer quatre-vingt-dix-neuf avec Java.
J'ai essayé le type d'entrée / sortie de Java Lambda ~ Stream version ~
J'ai essayé de créer une compétence Clova en Java
J'ai essayé de créer une fonction de connexion avec Java
J'ai essayé d'utiliser Log4j2 sur un serveur Java EE
J'ai essayé d'appeler du code natif Java / Objective-C depuis Flutter
J'ai essayé OCR de traiter un fichier PDF avec Java
J'ai essayé d'implémenter Sterling Sort avec Java Collector
[Java] J'ai essayé de mettre en œuvre la recherche de produits de l'API Yahoo
J'ai essayé d'utiliser l'instruction Extended for en Java
J'ai essayé de passer Java Silver en 2 semaines sans connaître Java
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
~ J'ai essayé d'apprendre la programmation fonctionnelle avec Java maintenant ~
J'ai essayé de gratter un graphique boursier en utilisant Java (Jsoup)
J'ai essayé de découvrir ce qui avait changé dans Java 9
[J'ai essayé] Tutoriel de printemps
J'ai essayé d'exécuter Autoware
J'ai essayé d'utiliser Gson
J'ai d'abord touché Java ③
J'ai essayé QUARKUS immédiatement
J'ai d'abord touché Java ④
J'ai essayé d'utiliser TestNG
J'ai essayé Spring Batch
J'ai essayé d'utiliser Galasa
J'ai essayé node-jt400 (Programmes)
J'ai d'abord touché Java