一、年龄问题
问题描述
美国数学家维纳(N.Wiener)智力早熟,11 岁就上了大学。他曾在 1935~1936 年应
邀来中国清华大学讲学。一次,他参加某个重要会议,年轻的脸孔引人注目。于是
有人询问他的年龄,他回答说:“我年龄的立方是个 4 位数。我年龄的 4 次方是个
6 位数。这 10 个数字正好包含了从 0 到 9 这 10 个数字,每个都恰好出现 1 次。”
请你推算一下,他当时到底有多年轻。
解题思路
找好界限 “我年龄的立方是个 4 位数。我年龄的 4 次方是个
6 位数” 所以在 18和25 之间 当然 这道题碰巧答案就是 18
所以这道题着重看下在判断一串数字 这 10 个数字正好包含了从 0 到 9 这 10 个数字,每个都恰好出现 1 次 是个技巧
public class Demo01_年龄问题 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
//如下代码
String sum;
for(int i = 10; i<25; i++) {
sum = i*i*i +""+i*i*i*i;
int k = 0;
while(sum.lastIndexOf(sum.charAt(k)) == k) {
if(k==9) {
System.out.println(i);
return;
}
k++;
}
}
}
}
二、统计方形
问题描述
有一个n*m方格的棋盘,求其方格包含多少正方形、长方形
输入格式
n,m规定m小于等于5000,n小于等于5000
输出格式
方格包含多少正方形、长方形
输入输出样例
输入
2 3
输出
8 10
解题思路
1.数据规模小于100时 用模拟法即可 也是枚举的一个思想
import java.util.Scanner;
/**
*
* @author sjf666
*
* 2020年4月13日下午9:53:58
*/
//暴力 遍历每个棋盘结点 在那之上 再进行不同边长正方形、长方形的统计
public class Demo05_统计方形 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n =sc.nextInt();
int m =sc.nextInt();
int[][] map = new int[n][m];
long zsum = 0, csum= 0;
long sum = 0;
for(int i = 0; i< map.length; i++) {
for(int j = 0; j