当前位置 博文首页 > m0_53521757的博客:java基础代码练习(一)
【例1】古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
分析:一月 1对, 2月 1对,3月 2对,4月 3对,5月5对,6月8对,7月13对,8月 21只……
答案:
package com.wz.extendsdemo;
import java.util.Scanner;
public class Subject1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
System.out.println("请输入月份:");
int m=scanner.nextInt();
System.out.println(Sum(m));
}
public static int Sum(int n) {
if(n==1||n==2)
return 1;
else
return Sum(n-1)+Sum(n-2);
}
}
输出示例:
【例2】判断101-200之间有多少个素数,并输出所有素数。
答案:
package com.wz.extendsdemo;
public class Sushu_2 {
public static void main(String[] args) {
// TODO Auto-generated method stu
int sum=0;
for(int i=101;i<=200;i++) {
if(sushu(i))
{
System.out.print(" "+i);
sum++;
if(sum%5==0) {
System.out.println();
}
}
}
System.out.println();
System.out.println("共有"+sum+"个素数");
}
public static boolean sushu(int n) {
for(int i=2;i<n/2;i++) {
if(n%i==0)
return false;
}
return true;
}
}
输出:
【例3】打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个”水仙花数”,因为153=1的三次方+5的三次方+3的三次方
答案:
package com.wz.extendsdemo;
public class Shuxianhua_3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
for(int i=100;i<=999;i++) {
if(shuixianhua(i)) {
System.out.print(" "+i);
sum++;
if(sum%5==0) {
System.out.println();
}
}
}
System.out.println();
System.out.println("共有"+sum+"个水仙花数");
}
public static boolean shuixianhua(int n) {
int a,b,c;
a=n%10;
b=n/10%10;
c=n/10%10;
if(a*a*a+b*b*b+c*c*c==n)
return true;
return false;
}
}
输出:
【例4】将一个正整数分解质因数。例如:输入90,打印出90=233*5。
答案:
package com.wz.extendsdemo;
import java.util.Scanner;
public class Fenjie {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.print("请输入需要分解因数的整数:");
Scanner scanner=new Scanner(System.in);
int a = scanner.nextInt();
fenjie(a);
}
public static void fenjie(int num) {
int tmp = num/2;
for(int i=2;i <= tmp ;i++){
if(num%i == 0){
num = num/i;
System.out.println("质因数为:"+i);
i=1;
continue;
}
}
}
}
输出示例:
【例5】利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
答案:
package com.wz.extendsdemo;
import java.util.Scanner;
public class Subject5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
System.out.println("请输入学生的成绩:");
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
String result=a>=90?"A":((a>=60&&a<=89)?"B":"C");
System.out.println("等级是:"+result);
}
}
输出示例: