1. 程式人生 > >Java習題——迴圈3

Java習題——迴圈3

  1. 任意輸入一個整數(小於10位),求這個整數有多少位?
    package cn.edu.nefu;
    
    import java.util.Scanner;
    
    public class Test01 {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		System.out.println("請輸入一個整數:");
    		int x = sc.nextInt();
    		int y = x;
    		int sum = 0;//位數
    		if(x==0){
    			sum = 1;
    		}else{
    			while(y>0){
    				sum++;
    				y/=10;
    			}
    		}
    		System.out.println("整數"+x+"有"+sum+"位");
    	}
    }
    

     

  2. 一個整數,它加上1000後是一個完全平方數,再加上1680又是一個完全平方數,請問該數是多少?在10萬以內判斷
    package cn.edu.nefu;
    
    public class Test02 {
    	public static void main(String[] args) {
    		int num1;
    		int num2;
    		for(int i=0;i<=100000;i++){
    			num1 = (int) Math.sqrt(i+1000);
    			num2 = (int) Math.sqrt(i+1680);
    			if(num1*num1==i+1000&&num2*num2==i+1680){
    				System.out.println("這個數是"+i);
    			}
    		}
    	}
    }
    

     

  3. 小明有五本新書,要借給A,B,C三位小朋友,若每人每次只能借一本,求可以有多少種不同的借法?將結果列印輸出
    package cn.edu.nefu;
    
    public class Test03 {
    	public static void main(String[] args) {
    		int a,b,c;
    		int count=0;
    		for(a=1;a<=5;a++){
    			for(b=1;b<=5;b++){
    				for(c=1;c<=5;c++){
    					if(a!=b&&a!=c&&b!=c){
    						count++;
    					}
    					
    				}
    			}
    		}
    		System.out.println("可以有"+count+"種借法");
    	}
    }
    

4.中國古代數學家研究出了計算圓周率最簡單的辦法:
PI=4/1-4/3+4/5-4/7+4/9-4/11+4/13-4/15+4/17......
這個算式的結果會無限接近於圓周率的值,我國古代數學家祖沖之計算出,圓周率在
3.1415926 和3.1415927 之間,請程式設計計算,要想得到這樣的結果,他要經過多少次加減法運算?

package cn.edu.nefu;

public class Test04 {
	public static void main(String[] args) {
		double PI = 0;
		int k = 1;//分母
		int count = -1;//運算次數
		int i = 1;
		while(PI<=3.1415926||PI>=3.1415927){
			PI += 4.0/k*i;
			k += 2;
			i *= -1;
			count++;
		}
		System.out.println("需要經過"+count+"次運算");
	}

}

5.A、B、C、D、E五個人在某天夜裡合夥去捕魚,到第二天凌晨時都疲憊不堪,於是各自找地方睡覺。日上三杆,A第一個醒來,他將魚分為五份,把多餘的一條魚扔掉,拿走自己的一份。B第二個醒來,也將魚分為五份,把多餘的一條魚扔掉,保持走自己的一份。C、D、E依次醒來,也按同樣的方法拿走魚。問他們合夥至少捕了多少條魚?

package cn.edu.nefu;

public class Test05 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int sum = 1;//魚的數量
		for(int i=1;i<=5;i++){
			sum = sum*5+1;
		}
		System.out.println("他們合夥至少捕了"+sum+"條魚");
	}

}

6.計算1!+2!+3!++n!的和

package cn.edu.nefu;

import java.util.Scanner;

public class Test06 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入n的值:");
		int n = sc.nextInt();
		int sum = 0;
		int k = 1;//每個數的階乘
		for(int i=1;i<=n;i++){
			k *=i;
			sum +=k;
		}
		System.out.println(sum);
	}
}

7.求輸入任意一個int型別的數字儲存的二進位制裡面含有多少個 1.

package cn.edu.nefu;

import java.util.Scanner;

public class Test07 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入一個二進位制數:");
		int num = sc.nextInt();
		int a = num,b = 0;
		int count = 0;//1的數量
		while(a>0){
			a /= 10;
			b = a%10;
			if(b==1){
				count++;
			}
		}
		System.out.println("二進位制數字"+num+"中含有"+count+"個1");
	}
}

8.打出如下圖形 (N=5)

         1

       121

     12321

   1234321

 123454321

package cn.edu.nefu;

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