Java基本流程控制语句

package com.org.lxh;

import java.util.Scanner;

/**
 * Java流程控制语句,if,if……else,switch,while,do……while,for等等
 * @author hemmingway <hemmingway@163.com>
 *
 *
 */
public class CommCtrl {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.输入一个年份,判断是不是闰年
		Scanner scan = new Scanner(System.in);
		System.out.println("输入一个年份:");
		
		long year;
		try{
			year = scan.nextLong();			//当输入非数字的时候判断异常
			if(year%4 == 0 && year%100 != 0  || year%400 == 0)
				System.out.println(year + "是闰年");
			else
				System.out.println(year + "不是闰年");
		}catch(Exception e){
			e.printStackTrace();
		}
		
	
		//2.黄蓉难倒瑛姑的数学题
		System.out.println("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?");
		for(int j = 1; j < 1000; j++){
			if(j%3 == 2 && j%5 == 3 && j%7 == 2){
				System.out.print(j + " ");
			}
		}
		
		System.out.println("");
		
		
		
		//3.李白提壶买酒的问题。
		//李白街上走,提壶去买酒,遇店加一倍,见花喝一斗,五遇店和花,喝光壶中酒。问壶中原先有多少酒?
		System.out.println("李白街上走,提壶去买酒,遇店加一倍,见花喝一斗,五遇店和花,喝光壶中酒。问壶中原先有多少酒?");
		double x = 0.0f;		//壶中酒,单位为斗
		for(int i = 5; i>0; i--){
			x = x + 1;
			x = x/2;
		}
		
		System.out.println("壶中原先有酒" + x + "斗");
		
		
		//另外一种方法分析
		//第一次遇见店和花,2x-1
		//第二次 2(2x-1)-1=4x-3
		//第三次,2(4x-3)-1=8x-7
		//第四次,2(8x-7)-1=16x-15
		//第五次,2(16x-15)-1=32x-31=0
		x = 31/32.0;
		System.out.println("壶中原先有酒31/32斗,即"+ x + "斗");	
		
		
		//4.输出杨辉三角
		//数字表,两则的数字都是1,其他位置的数字是正上方和左上方的数字之和,下面的代码演示了用for循环打印出包含10行的杨辉三角
		
		System.out.println("打印包含10行的杨辉三角");
		int triangle[][] = new int[10][];			//可以修改行数
		for(int i = 0; i<triangle.length; i++){
			triangle[i] = new int[i+1];
			for(int j=0; j<i; j++){
			
				if(i ==0 || j==0 ||j==1){
					triangle[i][j]=1;
				}else{
					triangle[i][j] = triangle[i-1][j] + triangle[i-1][j-1];
				}
				
				System.out.print(triangle[i][j] + "\t");
			
			}//for(int j=0; j<=i; j++)

			System.out.println();		//换行
		
		}//for(int i = 0; i<triangle.length; i++)
		
		
		//5.while循环计算一个数列
		System.out.println("使用循环计算:1-1/2+1/3-1/4+1/5-1/6+1/7-1/8+……");
		int i =1;
		double num = 0.0;
		while(i<=10000){    //演示一个bug   while(i<=100);{
			num = num + Math.pow(-1.0, i+1)*1.0/i;
			i++;
		}
		System.out.println("数列的结果趋向于" + num + ",即ln(2)=" + Math.log(2.0));		//Java中Math类的log函数默认是以e为底的,相当于数学的ln(2)函数

		
		//6.计算harmonic sum,即1+1/2+1/3+1/4+……
		System.out.println("计算harmonic sum,即1+1/2+1/3+1/4+……");
		int n = 1;
		double hn = 0.0;
		while(n<=1000){
			hn = hn + 1.0/n;
			n++;
		}
		System.out.println("harmonic sum 趋向于ln(N) :" + hn + ", ln(100)=" + Math.log(1000.0));
		
		
		
		
		
	}//end for main

}//end for class


输入一个年份:

2012

2012是闰年

今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?

23 128 233 338 443 548 653 758863 968

李白街上走,提壶去买酒,遇店加一倍,见花喝一斗,五遇店和花,喝光壶中酒。问壶中原先有多少酒?

壶中原先有酒0.96875

壶中原先有酒31/32斗,即0.96875

打印包含10行的杨辉三角

 

1  1 

1  2  1 

1  3  3  1 

1  4  6  4  1 

1  5  10 10 5  1 

1  6  15 20 15 6  1 

1  7  21 35 35 21 7  1 

使用循环计算:1-1/2+1/3-1/4+1/5-1/6+1/7-1/8+……

数列的结果趋向于0.6930971830599583,ln(2)=0.6931471805599453

计算harmonic sum,即1+1/2+1/3+1/4+……

harmonic sum 趋向于ln(N) 7.485470860550343,ln(100)=6.907755278982137

 






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值