こんにちは、私は小さな灰色の類人猿で、バグを書くことができるプログラマーです!
私のコラム「DailyBlueBridge」に注目してください。このコラムの主な機能は、近年のBlue Bridge Cup州の大会や決勝戦の本当の質問を共有し、アルゴリズムのアイデア、データ構造などを分析することです。その中に存在し、あなたが学ぶのを助けるコンテンツより多くの知識と技術に!
トピック:年齢を推測する
アメリカの数学者ウィーナー(N.ウィーナー)は、知性が未熟で、11歳で大学に進学しました。1935年から1936年に中国の清華大学で講義に招待されました。かつて、彼は重要な会議と若い顔に出席しました。目を引くものだったので、誰かが彼の年齢を尋ねると、彼は答えました:
「私の年齢の3乗は4桁の数字で、私の年齢の4乗は6桁の数字です。これらの10桁には、たまたま0から9までの10桁が含まれており、それぞれが1回だけ表示されます。計算してください。方法その時彼は若かった、
その時の年齢番号をブラウザから直接送信し、
注:回答プロセスやその他の説明文は提出しないでください。」
回答のソースコード:
package 一三年省赛真题; import java.util.HashSet; import java.util.Set; public class One { public static void main(String[] args) { //在10岁到100岁之间寻找 for (int i = 10; i < 100; i++) { int i3 = i*i*i; //获取到3次方 int i4 = i3*i; //获取到4次方 String s3 = i3 + ""; String s4 = i4 + ""; //判断立方的结果是否是4位数,4次方的结果是否是6位数,字符是否是由10个不重复的数字组成 //同时成立则输出年龄 if (s3.length()==4&&s4.length()==6&&check(s3+s4)) { System.out.println(i); } } } /** * 判断字符是否是由10个不重复的数字组成 * @param s 判断的字符 * @return true * */ private static boolean check(String s) { Set<Character> set = new HashSet<Character>(); //建立不存放重复字符的集合 // HashSet<String> set = new HashSet<String>(); for (int i = 0; i < s.length(); i++) { //将字符中的每一个元素单独拿出存放到集合中,若元素重复则不被存放 set.add(s.charAt(i)); } return set.size()==10; //字符长度等于10,返回True } }
サンプル出力:
欠点や改善点がありますので、友達にメッセージを残して一緒に学んでもらいたいです!
興味のある友達はコラムをフォローできます!
リトルグレイエイプは一緒に進歩するためにあなたに同行します!