每天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'));//输出结果
}
学习要循序渐进,思维慢慢培养,如果遇到程序异常要耐心检查,大多数都是语法错误,比如该大写没有大写,该加分号的没有分号,改写分号的写了其他符号。
耐心检查,你一定会成功!!
版权声明:本文为weixin_44649529原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。