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();
		}
	}
}

猜你喜欢

转载自blog.csdn.net/sunshinecollege/article/details/83821563
今日推荐