zoukankan      html  css  js  c++  java
  • 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) + " ");
    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);
    }
    }

  • 相关阅读:
    剑指offer——用两个栈实现队列
    根据前序和中序重建二叉树、后序和中序重建二叉树
    归并排序
    排序
    快速排序(java版)
    List
    单链表的基本操作
    集合
    数组
    结构体
  • 原文地址:https://www.cnblogs.com/Tom-shushu/p/9029786.html
Copyright © 2011-2022 走看看