作业

打印4个形状的九九乘法表

 1 public class One{
 2     public static void main(String[] args){
 3         for(int i=1;i<=9;i++){
 4             for(int j=1;j<=i;j++){
 5             System.out.print(j+"*"+i+"="+i*j+"\t");
 6             }
 7             System.out.println();
 8         }
 9         System.out.print("**********************************************************************\n");
10         for(int i=9;i>=1;i--){
11             for(int j=1;j<=i;j++){
12             System.out.print(j+"*"+i+"="+i*j+"\t");
13             }
14             System.out.println();
15         }
16         System.out.print("**********************************************************************\n");
17         for(int i=9;i>=1;i--){
18             for(int j=9;j>=1;j--){
19                 if(j>i)
20                     System.out.print("\t");
21                 else
22                 System.out.print(j+"*"+i+"="+i*j+"\t");
23             }
24             System.out.println();
25         }
26         System.out.print("**********************************************************************\n");
27         for(int i=1;i<=9;i++){
28             for(int j=9;j>=1;j--){
29                 if(j<=i)
30                     System.out.print(j+"*"+i+"="+i*j+"\t");
31                 else
32                     System.out.print("\t");
33             }
34             System.out.println();
35         }
36     } 
37 }

 

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

 1 import java.util.Scanner;
 2 public class Two{
 3     public static void main(String[] args){
 4         Scanner scanner=new Scanner(System.in);
 5         int s=2;//s 总数
 6         int b=2;//b前一个月兔子的数量
 7         int a=2;//a后一个月兔子的数量
 8         int n=3;//从第n个月开始
 9         System.out.print("输入第几月:");
10         int month=scanner.nextInt(); 
11         if(month<=2)
12             System.out.println("第"+month+"月有2只兔子");
13         else{
14             do{
15                 b=a;        //前一个月兔子的数量
16                 a=s;            //后一个月兔子的数量
17                 s=a+b;
18                 n++;
19             }while(n<=month);
20         System.out.println("第"+month+"月有"+s+"只兔子");
21         }
22     }
23 }

 

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
        153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

 1 public class Three{
 2     public static void main(String[] args){
 3         for(int n=100;n<1000;n++){
 4             int a=n%10;
 5             int b=n/10%10;;
 6             int c=n/100;
 7             if (a*a*a+b*b*b+c*c*c==n)
 8                 System.out.print(n+"\t");
 9         }
10     }
11 }

 

将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

 1 import java.util.Scanner;
 2 public class Four{
 3     public static void main(String[] args){
 4         Scanner scanner=new Scanner(System.in);
 5         System.out.print("请输入正整数:");
 6         int i=scanner.nextInt();//i即正整数
 7         System.out.print(i+"=");
 8         for(int j=2;j<=i; j++){
 9             if(i==j)
10                 System.out.print(j);
11             else  if(i%j==0){
12                 while(i%j==0){
13                     System.out.print(j);
14                     i=i/j;
15                     if(i!=1)
16                     System.out.print("*");
17                 }
18                 
19             }
20     
21             
22         }
23     }
24 }

 

输入两个正整数m和n,求其最大公约数和最小公倍数。

 1 import java.util.Scanner;
 2 public class Five{
 3     public static void main(String[] args){
 4         int x=0;
 5         Scanner scanner=new Scanner(System.in);
 6         System.out.print("输入两个正整数:");
 7         int i=scanner.nextInt(),j=scanner.nextInt();
 8         if(i<j){            //i>=j
 9             int z=i;
10             i=j;
11             j=z;
12         }
13         for(int m=j;m>=1;m--){            //m是最大公约数
14             if(i%m==0&&j%m==0){
15                 System.out.println(i+"和"+j+"的最大公约数是"+m);
16                 break;
17             }
18         }
19         for(int n=i;n<=i*j;n++){            //n是最小公倍数
20             if(n%i==0&&n%j==0){
21                 System.out.println(i+"和"+j+"的最小公倍数是"+n);
22                 break;
23             }
24         }
25     }
26 }

 

打印出如下图案(菱形)
            *
          ***
        ******
      ********
      ******
          ***
            *

import java.util.Scanner;
public class Six{
    public static void main(String[] arga){
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入一个奇行数:");
        int n=scanner.nextInt();
        int i,j,x,y;
        j=n/2;
        for(i=1;i<=n;i+=2){
            for(y=j;y>0;y--){
                System.out.print(" ");
            }
            j--;
            for(x=i;x>0;x--){
                System.out.print("*");
            }
            System.out.println();
        }
        for(i=n-2;i>0;i-=2){
            for(y=n/2-1-j;y<=n/2;y++){
                System.out.print(" ");
            }
            j++;
            for(x=i;x>0;x--){
                System.out.print("*");
            }    
            System.out.println();
        }
    }
}

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

 1 public class Seven{
 2     public static void main(String[] args){
 3         for(int n=1;n<1000;n++){
 4             for(int m=1;m<n;m++){
 5                 if(n%m==0){
 6                     m+=m;
 7                     if(m==n)
 8                         System.out.print(n+"\t");
 9                 }
10                     
11             }
12         }
13     }
14 }

 

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

 1 public class Eight{
 2     public static void main(String[] args){
 3         double s=0;//高为100米
 4         double H=100;//下落高度
 5         double h=0;//弹起高度
 6         int i=1;//次数
 7         for(i=1;i<=10;i++){
 8             s+=h+H;
 9             H=H/2;
10             h=H;
11         }
12         System.out.println("第"+(i-1)+"次落地时共经过"+s+"米,并且第"+(i-1)+"次反弹"+h+"米");
13     }
14 }

 

posted @ 2016-12-22 11:02  比比多味豆  阅读(153)  评论(0编辑  收藏  举报