java习题——循环2

1.输出图型

*

**

***

****

*****

******

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

2  输出图型
*******
******
*****
****
***
**
*

public class Test02 {
    public static void main(String[] args) {
        for(int i=7;i>=1;i--){
            for(int j=1;j<=i;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

3 .把1、2题的两个图型合成一个。

public class Test03 {
	public static void main(String[] args) {
		for(int i=1;i<=6;i++){
			for(int j=1;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
		for(int i=7;i>=1;i--){
			for(int j=1;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

4.编写一个九九乘法表

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

5 .百钱买百鸡,有100元钱,要去买100只鸡,公鸡5元一只,母鸡3元一只,小鸡1元3只,问公,母,小鸡各买多少只。

提示: a+b+c=100  只

       5a+3b+1/3c=100钱

public class Test05{
	public static void main(String[] args) {
		for (int cock=1;cock<=20;cock++ ){
			for (int hen=1;hen<=33;hen++ ){
				if(7*cock+4*hen==100)
					System.out.println("公鸡买"+cock+"只,母鸡买"+hen+"只,小鸡买"+(100-cock-hen)+"只");
			}
		}
	}
}

6 .星型图案

     *

    ***

   *****

  *******

 *********

public class Test06 {
	public static void main(String[] args) {
		for(int i=1;i<=5;i++){
			for(int j=1;j<10;j++){
				if(j<=(5-i)||j>=(5+i)){
					System.out.print(" ");
				}else{
					System.out.print("*");
				}
			}
			System.out.println();
		}

	}
}

7 .把上图形再倒过来,合成一个菱形图案

public class Test07{
	public static void main(String[] args) {
		for(int i=1;i<=9;i++){
			for(int j=1;j<10;j++){
				if(j<=Math.abs(5-i)||j>=(10-Math.abs(5-i))){
					System.out.print(" ");
				}
				else{
					System.out.print("*");
				}
			}
			System.out.println();
		}
	}
}

8 .打印出一个空菱形图案

public class Test08 {
	public static void main(String[] args) {
		for(int i=1;i<=9;i++){
			for(int j=1;j<10;j++){
				if(j==(Math.abs(5-i)+1)||j==(9-Math.abs(5-i))){
					System.out.print("*");
				}
				else{
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	}
}

9.求300-400之间的素数

public class Test09{
	public static void main(String[] args) {
		System.out.println("300-400之间的素数有:");
		for (int i=300;i<400 ;i++ ){
			boolean flag = true;
			for (int j=2;j<=i/2 ;j++ ){
				if (i%j==0){
					flag = false;
					break;
				}
			}
			if (flag==true){
				System.out.print(i+" ");
			}
		}
	}
}

10. 输出一个平行四边形的图案

public class Test10 {
	public static void main(String[] args) {
		for (int i=1;i<=4 ;i++ ){
			for (int j=1;j<=8 ;j++ ){
				if (j>(4-i)&&j<(9-i)){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	}
}

11.用while做 鸡兔同笼。鸡兔一共有50只,脚一共有160只,问鸡和兔各多少只?要求鸡兔至少一样一只。  

public class Test11 {
	public static void main(String[] args) {
		int chicken = 1;
		while (chicken<50){
			if (2*chicken+4*(50-chicken)==160){
				System.out.println("鸡有"+chicken+"只,兔有"+(50-chicken)+"只");
			}
			chicken++;
		}
	}
}

12.计算2/1+3/2+4/3+…+(n+1)/n,写出算法的程序.

import java.util.Scanner;
public class Test12 {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.println("请输入n的值:");
		double n = s.nextDouble();
		double sum=0;
		for (double i=1;i<=n;i++ ){
			sum+=(i+1)/i;
		}
		System.out.println(sum);
	}
}

13.2000年我国人口为13亿,如果人口每年的自然增长率为7%,那么多少年 后我国人口将达到15亿?设计一个算法的程序   

public class Test13 {
	public static void main(String[] args) {
		int sum=0;
		double population = 13;
		while (population<15){
			population*=1.07;
			sum++;
		}
		System.out.println(sum+"年后我国的人口将达到15亿");
	}
}

14.给出50个数,1,2,4,7,11,„,其规律是:第1个数是1,第2个数比第1个数大1,第3个数比第2个数大2,第4个数比第3个数大3,„,以此类推. 要求计算这50个数的和. 先将下面给出的程序框图,再根据程序框图写出程序.

public class Test14 {
	public static void main(String[] args) {
		int sum=0,j=1;
		for (int i=1;i<=50 ;i++){
			j+=(i-1);
			sum+=j;
		}
		System.out.println("这50个数的和为:"+sum);
	}
}

15.有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?  分析:兔子的规律为数列,1,1,2,3,5,8,13,21

public class Test15 {
	public static void main(String[] args) {
		int f1 = 1;      
		int f2 = 1;      
		int sum = 0; 
		for(int i = 3; i <= 12; i++){       
			sum = f1 + f2;       
			f1 = f2;       
			f2 = sum;      
		} 
		System.out.println("一对兔子一年内能繁殖成" + sum + "对。"); 
	}
}

16. 水仙花数(Narcissistic number)也被称为超完全数字不变数、自恋数、自幂数,水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153),请通过程序找出所有的3位数的水仙花数(穷举法)

public class Test16 {
	public static void main(String[] args) {
		System.out.println("100-1000中的水仙花数有:");
		for (int i=100;i<1000;i++ ){
			int ge  = i%10;
			int shi = i/10%10;
			int bai = i/10/10%10;
			if(i == (ge*ge*ge+shi*shi*shi+bai*bai*bai)){
				System.out.println(i);
			}
		}
	}
}

17. 从控制台输入一个正整数,并进行反转输出

import java.util.Scanner;
public class Test17 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in); 
		System.out.println("请输入一个整数:"); 
		int num=sc.nextInt(); 
		int result=0;
		while(true) { 
			int n=num%10;
			result=result*10+n;
			num=num/10;
			if(num==0) { 
				break; 
			} 
		} 
		System.out.println(result); 
	}
}

猜你喜欢

转载自blog.csdn.net/sunshinecollege/article/details/83794629