1.判断1-100之间有多少个素数并输出所有素数。
(将判断一个数是否是素数的功能提取成方法,在循环中直接调用即可)
public static void main(String[] args) {
//循环判断1-100有多少素数
int sum=0;
for (int i = 2; i <= 100; i++) {
if(isSs(i)){
sum++;
}
}
System.out.println("一共有"+sum+"个素数");
}
// 写一个方法实现一个判断一个数是否是素数的功能
// 是素数就返回true 不是我就返回false
public static boolean isSs(int n) {
// 实现功能
// 判断素数的方法
boolean flag = true;// 先认为就是素数
for (int i = 2; i < n; i++) {
if(n%i==0){
flag = false;// 证明他不是素数
break;
}
}
if(flag){
System.out.println(n);
}
return flag;
}
2.定义方法:打印指定行和列的矩形
//打印指定行和列的矩形 public static void printJx(int h, int l) { for (int i = 1; i <= h; i++) { for (int j = 1; j <= l; j++) { System.out.print("★"); } System.out.println(); } }
public static void main(String[] args) { printJx(5, 20); }
3.编写Java程序,实现接收用户输入的正整数,输出该数的阶乘。要求:限制输入的数据在1-10之间,无效数据进行提示,结束程序。要求使用递归和循环分别实现。
输出结果如:4!=1*2*3*4=24
public static void Jc(){ Scanner sc = new Scanner(System.in); System.out.println("请输入你要计算的阶乘:"); int k = sc.nextInt(); if(k<1||k>10){ System.out.println("无效输入"); return; }else{ String s =""; //1*2*3*4... for(int i=1;i<=k;i++){ if(i==k){ s+=i; }else{ s+=i+"*"; } } int r = dg(k); System.out.println(k+"!="+s+"="+r); } } public static int dg(int n){ if(n==1){ return 1; }else{ return n*dg(n-1); } } }
public static void main(String[] args) {
Jc(); }
4.编写递归算法程序:斐波那契数列的第40位数是多少。(递归)public class Zuoye3 { public static long fbn(int n){ if(n==0){ return 0; }else if(n==1){ return 1; }else if(n>1){ return fbn(n-1)+fbn(n-2); }else{ return -1; } } public static void main(String[] args) { long a=fbn(40); System.out.println(a); } }
5.使用递归求阶层
public class DgDemo { public static long dg(int a){ if(a==1){ return 1; }else{ return a*dg(a-1); } } public static void main(String[]args){ long b=dg(5); System.out.println(b); } }
6.输入三个班,每班10个学生的成绩,求和并求平均分
import java.util.Scanner; public class Zuoye4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int sum = 0; for (int i = 1; i <= 3; i++) { System.out.println("这是第" + i + "个班"); for (int j = 1; j <= 10; j++) { System.out.println("这是第" + i + "个班第" + j + "个同学的成绩"); double a = sc.nextDouble(); sum += a; } System.out.println("总和是" + sum); System.out.println("平均数是" + sum / 30); } } }