作业
打印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 }