1.寻找两个数相除,使商离黄金分割点0.618最近。
要求:分子分母不能同时为偶数。
分子分母取值在【1,20】。
public class Test{
public static void main(String[] args) {
float fenzi = 0;
float fenmu = 0;
float shang = 0;
float cha = 0;
float min = 1.0f;
int answermu = 0;
int answerzi=0;
for(fenmu=1;fenmu<=20;fenmu++) {
for(fenzi=1;fenzi<=20;fenzi++) {
if(fenzi%2==0&&fenmu%2==0)
continue;
shang=fenzi/fenmu;
cha=shang-0.618f;
cha=cha<0?0-cha:cha;
if(cha<min) {
min=cha;
answermu=(int) fenmu;
answerzi=(int) fenzi;
}
}
}
System.out.println(answermu);
System.out.println(answerzi);
}
}
水仙花数定义:
1. 一定是3位数
2. 每一位的立方,加起来恰好是这个数本身,比如153=1*1*1+5*5*5+3*3*3
寻找所有的水仙花数
public class Test{
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int baiwei = i / 100;
int shiwei = i / 10 % 10;
int gewei = i % 10;
int cube = baiwei * baiwei * baiwei + shiwei * shiwei * shiwei + gewei * gewei * gewei;
if (cube == i)
System.out.println("找到水仙花数:" + i);
}
}
}
public class Test{
public static void main(String[] args) {
int a = 0;
int b = 0;
int c = 0;
int d = 0;
for (a=-100; a<100; a++) {
for (b=-100; b<100; b++) {
for (c=-100; c<100; c++) {
for (d=-100; d<100; d++) {
if(a+b==8&&c-d==6&&a+c==14&&b+d==10){
System.out.println("a:"+a);
System.out.println("b:"+b);
System.out.println("c:"+c);
System.out.println("d:"+d);
}
}
}
}
}
}
}