Java 算法(二)

【程序9】 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3。编程找出1000以内的所有完数

//第一种
public class A09 {
public static void main(String[] args) {
int s;
for (int i = 1; i <= 1000; i++) {
s = 0;
for (int j = 1; j < i; j++)
if (i % j == 0)
s = s + j;
if (s == i)
System.out.print(i + " " );
}
System.out.println();
}

}

//第二种:
public class A08{
public static void main(String[] args) {
int i,j,sum;
for(i=1;i<1000;i++)
{
sum = 0;
for(j=1;j<=i/2;j++)
{
if(i%j==0)
{
sum+=j;
}
}
if(sum==i)
{
System.out.print(i+" its factors are: ");
for(j=1;j<=i/2;j++)
{
if(i%j==0)
System.out.print(j+", ");
}
System.out.println();
}
}
}
}

 

【程序10】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,

共经过多少米?第10次反弹多高?

public class A10 {
public static void main(String[] args) {
double s = 0;
double h = 100;
for (int i = 1; i <= 10; i++) {
s += h*1.5;
h = h/2;
}
System.out.println("经过路程:"+s);
System.out.println("反弹高度:"+h);
}
}

【程序11】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

public class A11 {

public static void main(String[] args) {
int count = 0;
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 && i != k) {
count += 1;
System.out.println(i*100 + j*10 + k);
}
System.out.println("共" + count + "个三位数");
}
}

【程序12】 题目:输出9*9口诀乘法表

public class A12{
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++)
System.out.print(i + "*" + j + "=" + (i*j) + "\t");
System.out.println();
}
}
}

【程序13】 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,

又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩

下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?

 

public class A13{
public static void main(String[] args) {
int sum = 1;
for (int i = 0; i < 9; i++) {
sum = (sum + 1) * 2;
}
System.out.println("第一天共摘"+sum);
}
}

【程序14】 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和

public class A14 {
public static void main(String[] args) {
float a = 1.0f;
float b = 1.0f;
float temp;
float sum = 0f;
for (int i = 0; i < 20; i++) {
temp = a;
a = b;
b = b + temp;
System.out.println((int) b + "/" + (int) a);
sum += b / a;
}
System.out.println("前二十项和为"+sum);
}
}

 

posted @ 2018-05-12 20:14  Tom-shushu  阅读(205)  评论(0编辑  收藏  举报