每天5道Java基础编程练习题(一)

每天5道Java基础编程练习题(一)

你好! 欢迎阅读,本系列面向Java基础基础学习阶段程序猿,每天5道基础编程,,帮助你慢慢培养编程思维,走进编程的世界(高手勿喷)
大量的注释让你更正确快速的阅读代码。
废话不多说,让我们直接进入正题

第一题

判断101~200之间有多少个素数,并输出所有的素数

public static void suShu(){
		/* 循环遍历
		 * 声明一个变量存储素数的个数
		 * 输出所有都素数
		 * */
		int count=0;//存放素数的个数
		for (int i = 101; i < 200; i++) {
			for(int j=i-1;j>1;j--){
				if(i%j==0){//不是素数
					break;
				}
				if(j==2){//j--到2,是素数
					count++;//素数个数加1
					System.out.println(i);//输出素数
				}
			}
		}
		System.out.println("一共有"+count+"个素数");
	}

第二题

斐波拉契数列:
有一对兔子,从出生后第3个月起,每个月都生一对兔子,小兔子长到第3个月后,每个月又生一对兔子,假如兔子都不死, 问每个月兔子的总数为多少

public static void rabbit() {
		/*
		 * 兔子的总数为 对数*2
		 * 第3个月起,每个月对数+1
		 * 每对小兔子,第3个月起,每月对数加1
		 * 
		 * 后一个月的数量是前两个月数据之和
		 * */
		int sum=0;//记录兔子的总数
		int num=2;//记录兔子的初始值
		int[] num1=new int[10];//数组存放过去每个月兔子的数量
		for (int i = 1; i < 10; i++) {
			if(i<3){				
				sum=num;//前2个月兔子总数不变
				num1[i]=sum;//将兔子的数量让数组储存
				System.out.println("第"+i+"个月"+num1[i]);//打印每个月的兔子数量
			}else{
				sum+=num1[i-2];//每次计算前sum中存放上个月的数量,和大前个月数量相加
				num1[i]=sum;//将兔子的数量存入数组
				System.out.println("第"+i+"个月"+num1[i]);//打印每个月兔子的数量
			}
		}
	}

第三题

打印4位数水仙花数

public static void waterImmortalFlowerNumber(){
		int sum=0;//存放水仙花数
		int num=0;//存放各位数,用于计算
		for(int i=1000;i<10000;i++){//遍历所有的4位数
			sum=0;//每次循环结束清0,否则会将上一次的计算结果带入,导致计算错误
			num=0;
			int c=i;//定义两个变量用于记录当前是哪个数,方便计算
			int k=i;
			do {
				num=k%10;//取最后一位
				sum+=num*num*num*num;//进行计算
				k=k/10;//去掉最后一位
			} while (k!=0);//判断变量k是否为0
			if(sum==c){//如果计算结果和当前i值一样,这个数就是水仙花数,输出结果
				System.out.println(sum);
			}			
		}	
	}

第四题

将一个正整数分解质因数

public static void intSum(){
		Scanner input=new Scanner(System.in);//声明Scanner类
		System.out.println("输入一个数");
		int num=input.nextInt();//输入一个整数
		int[] s=new int[num];//定义一个数组s,大小为输入的整数
		int index=0;//数组下标
		int num1=num;//将输入的整数进行备份
		for(int i=2;i<num1;i++){
			if(num%i==0){//判断是否可以被i分解
				num=num/i;//计算因式分解后的数值
				s[index++]=i;
				i=1;//重置i
			}
		}
		s=Arrays.copyOf(s, index);//去掉未使用的数组空间
		System.out.print(num1+"=");//输出      num1=
		for (int i = 0; i < s.length; i++) {//循环遍历数组
			System.out.print(s[i]);//输出因数
			if(i<s.length-1){//长度减-1,最后一次不输出*号
				System.out.print("*");//输出 * 号
			}
		}
	}

第五题

三目运算符
* 学习成绩大于90 A
* 60~90 B
* 60一下 C

public static void three(){
		Scanner input=new Scanner(System.in);//声明Scanner类
		System.out.println("输入成绩");
		int score=input.nextInt();//接收输入的值
		/*
		*score<60?'C':(score>90?'A':'B')
		*先计算分数是否小于60,如果小于60分,成绩为C;
		*否则计算(score>90?'A':'B')
		*判断成绩是否大于90,是成绩为A,否则成绩为B
		*/
		System.out.println(score<60?'C':(score>90?'A':'B'));//输出结果
	}

学习要循序渐进,思维慢慢培养,如果遇到程序异常要耐心检查,大多数都是语法错误,比如该大写没有大写,该加分号的没有分号,改写分号的写了其他符号。
耐心检查,你一定会成功!!

你可能感兴趣的:(Java基础题库)