package com.work.cloudy;
import java.awt.List;
import java.util.TreeSet;
/*
* 1.有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和
*/
public class TestOne {
public static void main(String[] args) {
// sumOne();
// sumTwo();
// System.out.println("第十次反弹"+Three(10,100,0)+"米");
sumFour();
}
private static void sumOne() {
int a=1, b=1, temp; //从规律可以得出 第3个分母的值是前两个分母的和, 由此可以定义出一个变量 a=1;
double c;
double sum = 0;
for (int i = 0; i < 20; i++) {
temp = a; // 分子是前一个分母的值, 所以 先用一个临时变量存着,
a = a + b;
b = temp; // 在把临时变量里的值赋给 b;
c = (double)a/b; // 由于是int类型, 转成double;
sum += c;
System.out.println(a+"/"+b);
}
System.out.println(sum);
}
/*
* 2.有五个人坐在一起,问第五个人是多少岁,他说比第四个人大两岁。问第四个人是多少岁,他说比第三个人大两岁。
* 问第三个人是多少岁,他又说比第二个人大两岁。问最后一个人,他只是说10岁,请问第五个人多大。
*/
private static void sumTwo() {
int first = 10;
for (int i = 0; i < 4; i++) {
first+=2; //从后往前退 每个人的年龄加上2
}
System.out.println(first);
}
/*
* 一球从一百米高度自由下落,每次落地后反跳原来高度的一半,再落下,求它在第10次落地时,共进过多少米?第十次反弹多高?
*/
private static double Three (int count,double mi,double temp) {
System.out.println(temp+"-----"+mi);
double sum = temp+mi;
if(count < 1){
System.out.println("共"+sum+"米");
return mi;
}else{
count--;
return Three(count,mi/2,sum); //递归方法, 10次, 每次都是除以2的高度, sum是记录器, 记录每次降落多少米
}
}
/*
* 2.有1,2,3,4四个数字,能组成多少个互不相同的且没有重复数字的三位数,都是多少,并且将所得的三位数按升序排列并打印。
*/
private static List sumFour() {
//思路: 因为是3个数, 那么可以写3层循环来进行判断.. 首先最外层是第1个数, 第2层是中间的数, 第3层是第3个数..
int count = 0;
StringBuilder sb = new StringBuilder();
List list =new List();
for (int i = 1; i <=4; i++) {
for (int j = 1; j <=4; j++) {
for (int k = 1; k <=4; k++) {
if(i!=j&&j!=k&&k!=i){ //只需要判断它们各自不都相等对方即可.. 然后一个计数器++
count++;
// System.out.print(i);
// System.out.print(j);
// System.out.println(k);
sb.append(i); // 然后我把数存在一个StringBuilder 缓冲区里
sb.append(j);
sb.append(k);
myCompareTo(sb.toString());// 由于TreeSet 的排序会比较方便, 于是我就不放在数组里了.. TreeSet 是自带升序功能
sb.delete(0, sb.length()); 最后再做一步, 存一个删一个..
}
}
}
}
System.out.println(count+"个");
return list;
}
private static void myCompareTo(String sb) {
int i = Integer.parseInt(sb);
TreeSet<Integer> s = new TreeSet<Integer>();
s.add(i);
for (Integer integer : s) {
System.out.println(integer);
}
}
} |