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