第一节课的主要内容:
暴力破解与实用性优先 (1)暴力破解在大赛及企业应用中的重要性 (2)暴力破解中的实用性原则 (3)逆向解法 (4)枚举法
题目一:
美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。
他曾在1935~1936年应邀来中国清华大学讲学。 一次,他参加某个重要会议,年轻的脸孔引人注目。 于是有人询问他的年龄,他回答说: “我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。” 请你推算一下,他当时到底有多年轻。
解题方法:
1 package com.algorithm.java.blueBirdge; 2 3 //import static sun.misc.Version.println; 4 5 public class testsuanfa { 6 public static void main(String[] args){ 7 //假设他的年龄在1岁到100岁之间(40的) 8 for(int i=10;i<100;i++){ 9 //对年龄的立方和年龄的四次方判断 10 int a =i*i*i; 11 int b=a*i; 12 //将a 转成串 13 if((a+"").length()!=4) continue;//如果将a 由数字转成字符串以后,长度不为4,跳出循环 14 if((b+"").length()!=6) continue;//如果将b 由数字转成字符串以后,长度不为6,跳出循环 15 System.out.println(i +"的四次方是"+a+" 的六次方是"+b); 16 } 17 } 18 19 }
测试结果:
由结果可以看出:18
写的程序要求:实用,快速,稳定,有效!