【Java初阶练习题】-- 循环+递归练习题

news2024/11/14 18:12:07

循环练习题02

  • 打印X图形
  • 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
  • 输出一个整数的每一位如:123的每一位是3,2,1
  • 模拟登录
  • 使用方法求最大值
  • 求斐波那契数列的第n项。(迭代实现)
  • 求和的重载
  • 求最大值方法的重载
  • 递归求N阶乘
  • 递归求 1 + 2 + 3 + ... + 10
  • 递归打印数字的每一位
  • 写一个递归方法,输入一个非负整数,返回组成它的数字之和
  • 递归求斐波那契数列的第 N 项
  • 汉罗塔

打印X图形

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        while(sc.hasNextInt()) {
            int n = sc.nextInt();
            for(int i = 0 ; i < n ; i++) {
                for(int j = 0 ; j < n ; j++) {
                    if(i == j || i + j == n-1) {
                        System.out.print("*");
                    } else {
                        System.out.print(" ");
                    }
                }
                System.out.println();
            }
        }
    }
}

在这里插入图片描述

计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值

    public static void main(String[] args) {
        double sum = 0;
        int tmp = 1;
        for (int i = 1; i <= 100; i++) {
            sum += 1.0/i * tmp;
            tmp = - tmp;
        }
        System.out.println(sum);
    }

在这里插入图片描述

输出一个整数的每一位如:123的每一位是3,2,1

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        while(num != 0) {
            System.out.print(num%10+" ");
            num /= 10;
        }
    }

在这里插入图片描述

模拟登录

要求:// 编写代码模拟三次密码输入的场景。 最多能输入三次密码,
// 密码正确,提示“登录成功”,密码错误, 可以重新输 入,最多输入三次。三次均错,则提示退出程序
Java中比较字符是.equals

    public static void main(String[] args) {
        int count = 3;
        Scanner scanner = new Scanner(System.in);
        while (count != 0) {
            System.out.println("请输入你的密码:");
            String passWord = scanner.nextLine();
            if (passWord.equals( "123456")) {
                System.out.println("登录成功");
                return;
            }else {
                count--;
                System.out.println("你还有 "+count+"次机会");
            }
        }
        System.out.println("密码错误");
    }

在这里插入图片描述

使用方法求最大值

要求:创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3

    public static void main(String[] args) {
        int a = 2;
        int b = 4;
        int c = 9;
        System.out.println(max2(a, b));
        System.out.println(max3(a, b, c));
    }
    public static int max2(int x,int y) {
        return x > y ? x : y;
    }
    public  static int max3(int i,int j,int k) {
        int ret = max2(i,j);
        return max2(ret,k);
    }

在这里插入图片描述

求斐波那契数列的第n项。(迭代实现)

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        System.out.println(fib(num));
    }
    public static int fib(int n) {
        if (n == 1 || n == 2) {
            return 1;
        }
        int f1 = 1;
        int f2 = 1;
        int f3 = 2;
        for (int i = 3; i <= n; i++) {
            f3 = f1 + f2;
            f1 = f2;
            f2 = f3;
        }
        return f3;
    }

在这里插入图片描述

求和的重载

要求:求两个整数的方法 和 三个小数之和

    public static void main(String[] args) {
        int x = 1;
        int y = 2;
        double d1 = 2.8;
        double d2 = 5.2;
        double d3 = 2.5;
        System.out.println(add(x,y));
        System.out.println(add(d1,d2,d3));
    }
    public static int add(int a,int b) {
        return a+b;
    }

    public static double add(double c,double d,double e) {
        return c+d+e;
    }

在这里插入图片描述

求最大值方法的重载

在同一个类中定义多个方法:要求不仅可以求2个整数的最大值,还可以求3个小数的最大值?

    public static void main(String[] args) {
        int n1 = 2;
        int n2 = 5;
        double d1 = 2.5;
        double d2 = 9.5;
        double d3 = 7.5;

        System.out.println(max(n1,n2));
        System.out.println(max(d1,d2,d3));
    }

    public static int max(int a,int b) {
        return Math.max(a, b);
    }
    public static double max(double n,double m, double l) {
        double d = Math.max(n,m);
        return Math.max(d,l);
    }

在这里插入图片描述

递归求N阶乘

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int ret = fac(N);
        System.out.println(ret);
    }
    public static int fac(int n) {
        if (n == 1) {
            return 1;
        }
        return n * fac(n-1);
    }

在这里插入图片描述

递归求 1 + 2 + 3 + … + 10

    public static void main(String[] args) {
        System.out.println(sum(10));
    }
    public static int sum(int n) {
        if (n == 1) {
            return 1;
        }
        return n + sum(n-1);
    }

在这里插入图片描述

递归打印数字的每一位

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        print(num);
    }
    public static void print(int n) {
        if (n < 10) {
            System.out.print(n);
            return;
        }
        print(n / 10);
        System.out.print(" " + (n % 10));
    }

在这里插入图片描述

写一个递归方法,输入一个非负整数,返回组成它的数字之和

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        System.out.println(sumEvery(num));
    }
    public static int sumEvery(int n) {
        if (n < 10) {
            return n;
        }
        return sumEvery(n / 10) + n % 10;
    }

在这里插入图片描述

递归求斐波那契数列的第 N 项

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        System.out.println(fib1(num));
    }
    public static  int fib1(int n) {
        if (n == 1 || n == 2) {
            return 1;
        }
        return fib1(n-1) + fib1(n-2);
    }

在这里插入图片描述

汉罗塔

    public static void main(String[] args) {
        hanoi(3,'A','B','C');
    }
    public static void move(char pos1,char pos2) {
        System.out.print(pos1 + "-> " + pos2 + " ");
    }
    public static void hanoi(int n,char pos1,char pos2,char pos3) {
        if (n == 1) {
            move(pos1,pos3);
            return;
        }
        hanoi(n-1,pos1,pos3,pos2);
        move(pos1,pos3);
        hanoi(n-1,pos2,pos1,pos3);
    }

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1164049.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis的安装及基本使用

⭐⭐ Redis专栏&#xff1a;Redis专栏 ⭐⭐ 个人主页&#xff1a;个人主页 目录 一.Redis的简介 ⭐ 拓展&#xff1a;NO-SQL数据库与SQL数据库 二.Redis的安装 2.1linux版安装 下载Redis Desktop 2.2 Windows安装 三.redis的基本使用 3.1 String 字符串类…

如何从嘉立创下单一个PCB打板(免费)

文章目录 设计PCB下单制作PCB领取优惠券 设计PCB 由于我刚接触PCB设计&#xff0c;并不会自己设计&#xff0c;因此直接选择了一个开源硬件平台中的一个项目进行下载&#xff0c;下载链接如下&#xff1a; ESP32管灯熊猫 - 嘉立创EDA开源硬件平台 (oshwhub.com) 根据其中的视…

jeecg-uniapp 转成小程序的过程 以及报错 uniapp点击事件

uniapp 点击事件 tap: 单击事件 confirm: 回车事件 blur:失去焦点事件 touchstart: 触摸开始事件 touchmove: 触摸移动事件。 touchend: 触摸结束事件。 longpress: 长按事件。 input: 输入框内容变化事件。 change: 表单元素值变化事件。 submit: 表单提交事件。 scroll: 滚动…

程序员有哪些规避风险的合法兼职渠道?

近期&#xff0c;承德程序员事件冲上热搜&#xff0c;这对许多程序员的心灵是多么大的伤害啊&#xff01; 人人自危&#xff0c;大家开始顾虑自己接私活、找兼职的方式和前景了。毕竟&#xff0c;谁也不想”辛辛苦苦几十年&#xff0c;一把回到解放前“。那有什么办法既可以接私…

【自动控制原理】数学模型:系统框图及其化简、控制系统传递函数

文章目录 第2章 数学模型2.1 控制系统的运动微分方程2.2 拉氏变换和反变换2.3 传递函数2.4 系统框图2.4.1 系统框图2.4.2 系统框图的简化2.4.3 梅森公式2.4.4 例题答案解析——梅森公式 2.5 控制系统传递函数2.5.1 闭环系统的开环传递函数2.5.2 参考输入R(s)作用下的闭环传递函…

ONNX的结构与转换

ONNX的结构与转换 1. 背景2. ONNX结构分析与修改工具2.1. ONNX结构分析2.2. ONNX的兼容性问题2.3. 修改ONNX模型 3. 各大深度学习框架如何转换到ONNX&#xff1f;3.1. MXNet转换ONNX3.2. TensorFlow模型转ONNX3.3. PyTorch模型转ONNX3.4. PaddlePaddle模型转ONNX3.4.1. 简介3.4…

zabbix6.4监控centos

1、关闭防火墙 setenforce 0 #关闭SELinux sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config #设置永久关闭SELinux systemctl stop firewalld.service #关闭防火墙 systemctl disable firewalld.service …

nodejs express vue 点餐外卖系统源码

开发环境及工具&#xff1a; nodejs&#xff0c;vscode&#xff08;webstorm&#xff09;&#xff0c;大于mysql5.5 技术说明&#xff1a; nodejs express vue elementui 功能介绍&#xff1a; 用户端&#xff1a; 登录注册 首页显示搜索菜品&#xff0c;轮播图&#xf…

DNS 域名解析协议

作用 将域名转化位IP地址 域名 用’ . ’ 隔开的字符串&#xff0c;如&#xff1a;www.badu.com,就是为了赋予IP特殊含义。 一级域名 .com &#xff1a;公用 .cn&#xff1a;中国 .gov&#xff1a;政府 .us&#xff1a;美国 .org&#xff1a;组织 .net&#xff1a;网站 对应一级…

MATLAB和S7-1200PLC OPC通信(激活S7-1200PLC OPC UA服务器)

MATLAB和SMART PLC OPC通信请参考下面文章博客: MATLAB和西门子SMART PLC OPC通信-CSDN博客文章浏览阅读123次。西门子S7-200SMART PLC OPC软件的下载和使用,请查看下面文章Smart 200PLC PC Access SMART OPC通信_基于pc access smart的opc通信_RXXW_Dor的博客-CSDN博客OPC是…

【算法挨揍日记】day18——746. 使用最小花费爬楼梯、91. 解码方法

746. 使用最小花费爬楼梯 746. 使用最小花费爬楼梯 题目描述: 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬…

进程优先级(nice值,top指令),独立性,竞争性,进程切换(时间片),抢占与出让,并发并行概念

目录 优先级 引入 为什么会存在优先级 特点 优先级值 nice值 更改nice值 top指令 独立性 竞争性 进程切换 引入 时间片 上下文切换 调度器 抢占与出让 强占 出让 并发和并行 并发 并行 优先级 引入 与权限不同的是,权限是能不能做的问题,优先级是什…

有谁知道怎么下载微信视频号视频吗?

抖音视频下载、某站视频下载都很常见&#xff0c;那你知道怎么下载V信视频号视频吗/今天给大家分享两种简单方便的办法&#xff0c;继续往下看吧&#xff01;一、犀牛视频下载机器人犀牛视频下载器可以直接解析并下载视频号短视频。您只需转发视频到机器人即可下载。此方法也是…

Redis安装-常用命令及操作

目录 一.Redis简介 二.redis安装 1.1安装Linux版本 1.2安装 windows版本 三.redis的常用命令 Redis哈希(Hash) 一.Redis简介 Redis是一个开源&#xff08;BSD许可&#xff09;&#xff0c;内存存储的数据结构服务器&#xff0c;可用作数据库&#xff0c;高速缓存和消息队…

LLMs之RAG之IncarnaMind:IncarnaMind的简介(提高RAG召回率的两个优化技巧=滑块遍历反向查找+独立查询)、安装、使用方法之详细攻略

LLMs之RAG之IncarnaMind&#xff1a;IncarnaMind的简介(提高RAG召回率的两个优化技巧滑块遍历反向查找独立查询)、安装、使用方法之详细攻略 导读&#xff1a;在IncarnaMind项目中&#xff0c;提出了几个优化技巧&#xff0c;是非常值得我们在优化RAG系统的时候&#xff0c;进行…

分享66个工作总结PPT,总有一款适合您

分享66个工作总结PPT&#xff0c;总有一款适合您 66个工作总结PPT下载链接&#xff1a;https://pan.baidu.com/s/1g8AWl42-tLdFYXEHZUYyGQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 立冬PPTPPT模板 西藏信仰PPT模板 古镇丽…

金麟国际用工-全新蓝领跨境就业服务平台

金麟国际用工-全新蓝领跨境就业服务平台 金麟国际用工平台是一个引领时代的蓝领跨境就业服务平台&#xff0c;专为蓝领求职者和雇主提供一个全面、便捷、高效的就业对接环境。这个平台通过其强大的数字化系统&#xff0c;包括客户管理系统、岗位信息系统和智能营销工具等&…

c++-AVL树

文章目录 前言一、AVL树1、AVL树概念2、AVL树模拟实现3、AVL树的旋转操作3.1 左单旋3.2 左单旋代码实现3.3 右单旋3.4 右单旋代码实现。3.5 什么时候调用左单旋和右单旋3.6 左右双旋3.7 左右双旋代码实现3.8 右左双旋3.9 右左双旋代码实现3.10 什么时候调用左右双旋和右左双旋 …

【C++】C++11【上】列表初始化|声明|新容器|右值引用|完美转发|新的类功能

目录 1、 C11简介 2、 统一的列表初始化 2.1 &#xff5b;&#xff5d;初始化 2.2 std::initializer_list 3、声明 3.1 auto和范围for 3.1decltype 3.3 nullptr 4、新容器 5、 右值引用 5.1左值引用和右值引用 5.2 左值引用与右值引用比较 5.3 左值和右值引用使用场景及意义 6…

怎么让重要文件自动备份到OneDrive?

可以让文件自动备份到OneDrive吗&#xff1f; OneDrive是比较受欢迎的云存储之一&#xff0c;主要用于存储文件和个人数据&#xff0c;随时随地都能够在多个设备&#xff08;例如Android、台式机或笔记本电脑、平板电脑等&#xff09;之间同步和共享文件。 因此&…