IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java学习 -> 正文阅读

[Java知识库]Java学习

java练习题

编程实现例题

1)某人有100000元,每经过一次路口,需要交费,规则如下:

? 当现金>50000时,每次交5%;

? 当现金<= 50000时,每次交1000

? 编程计算该人可以经过多少次路口,要求:使用while + break 方式完成。

public class one{
    public static void mian(){
        //思路分析
        //定义一个变量 int count 计算经过人数
        //定义一个变量 double money 初值 100000      
        /*根据要求,分析出三种情况
        	money > 50000
        	money >= 1000 && money <= 50000
        	money < 1000
        */
        int count = 0;
        double money = 100000;//初值
        while(true){//无限循环
            if(money > 50000){
                money = money * (1 - 0.05);
                count++;
            }else if(money >= 1000 && money <= 50000){
                money -= 1000;
                count++;
            }else if(money < 1000)//钱不够
                break;
        }
        //退出while循环,输出count
        System.out.println("100000元经过" +count +"次路口。");
    }
}

2)实现判断一个整数,属于那个范围:大于0;小于0;等于0;

public class two{
    public static void mian(){
        //思路分析
        //使用scanner对象输入一个整型
        //定义一个整数,使用if - else 判断
        Scanner myscanner = new Scanner(System.in);
        int num = myscanner.nextInt();
        if(num > 0){
            System.out.println(num + "大于0");
        }else if(num == 0){
            System.out.println(num + "等于0");
        }else{
			System.out.println(num + "小于0");
        }
    }
}

3)判断一个年份是否为闰年

public class three{
    public static void mian(){
        //思路分析
        //使用Scanner对象输入int 型
        //闰年:(1)年份能被 4 整除,但不能被 100 整除;(2)能被 400 整除
        Scanner myscanner = new Scanner(System.in);
        int year = myscanner.nextInt();
        if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
            System.out.println(year + "是闰年");
        }else{
            System.out.println(year + "不是闰年");
        }
    }
}

4)判断一个整数是否是水仙花数,所谓水仙花数是指一个三位数,其各位上数字立方和等于其本身。例如:153 = 1 * 1 * 1 + 5 * 5 *5 + 3 * 3 * 3

public class four{
    public static void mian(){
        //思路分析
        //使用Scanner对象 输入 int num
        //取个位 num % 10
        //取十位 num / 10 %10
        //取百位 num / 100
        Scanner myscanner = new Scanner(System.in);
        int num = myscanner.nextInt();
        int a = num % 10;
        int b = num / 10 % 10;
        int c = num / 100;
        int sum =0;
        sum = a * a * a + b * b * b + c * c * c;
        if(sum == num)
        	System.out.println(num + "是水仙花数");
        else
            System.out.println(num + "不是水仙花数");
    }
}

5)看看下面代码输出什么?

public class five{
    public static void mian(){
        int m = 0,n = 3;
        if(m > 0){
			if(n > 2)
                System.out.println("OK1");
            else
                System.out.println("OK2");
        }
        //分析
        //m>0假直接结束if循环,所以没有输出
    }
}

6)输出1 - 100之间的不能被5整除,每五个一行。

public class six{
    public static void mian(){
        //思路分析
        //for循环1 - 100
        //过滤判断 不能被5整除的输出
        //定义一个变量计数 int count ,五个一行(count%5==0)
        int count = 0;
        for(int i = 1;i <= 100;i++){
            if(i % 5 != 0){
                System.out.print(i + "\t");//使用print不换行
                count++; 
            if(count % 5 == 0)
                System.out.println();//换行	
            }
        }
    }
}

7)输出小写的a - z 以及大写的 Z - A.

public class seven{
    public static void mian(){
        //思路分析
        //26个字母
        //一个循环 从 a - z
        //一个循环 从 A - Z
        for(char i = 'a';i <= 'z';i++)
            System.out.print(i + "\t");
        System.out.println();
        for(char i = 'Z';i >= 'A';i--)
            System.out.print(i + "\t");
    }
}

8)求出1 - 1/2 + 1/3 - 1/4…1/100的和

public class egiht{
    public static void mian(){
        //思路分析1
        //循环1 - 100
        //求和 int sum = 0;
        //符号变换 sign = - sign
        //定义一个变量 a 接收每一个变化的项
        double sum = 0;
        int sign = 1;//第一项保持为正
        double a = 1;//首项
        for(int i = 1;i <= 100;i++){
            a = sign * (1.0/i);
            sign = - sign;//变号
            sum += a;
        }
        System.out.print("和为" + sum);
    }
}
public class eight{
    public static void mian(){
        //思路分析2
        /*一共100数, 分子为1,分母从1 - 100
          当分母为奇数时,前面时+,是偶数时,前面是-
          我们可以使用for+判断即可完成
          把结果存放到double sum
          隐藏陷阱,分子写成1.0才能得到精确值
		*/
        double sum = 0;
        for(int i = 1;i <= 100;i++){
            if(i % 2 != 0)//奇数
                sum += 1.0 / i;
            else
                sum -= 1.0 / i;
        }
        System.out.print(sum);
    }
}

9)求 1 + (1 + 2)+(1 + 2 + 3)+(1 + 2 + 3 + 4)+…(1 + 2 +3 +…+100)的和

public class nine{
    public static void mian(){
        //思路分析1
        //for循环 1 - 100;
        //定义一个变量 int num 每项的和  初值为0  num = num + i
        //定义一个变量 int sum 求总和 初值为0  sum = sum + num
        int num = 0;
        int sum = 0;
        for(int i = 1;i <= 100;i++){
            //从1到当前值的和
            num += i;
            //求总和
            sum += num;
        }
        System.out.print(sum);
    }
}
public class nine{
    public static void mian(){
        //思路分析2
        /*一共100相加
          每一项数字逐渐增加
          双层循环
          i可以表示第几项,同时也是当前项的最后一个数
          sum记录累加和。
		*/
        double sum = 0;
        for(int i = 1;i <= 100;i++){
            for(int j = 1;j <= i;j++){//循环1-i
				sum += j;
			}
        }
        System.out.print(sum);
    }
}

打印空心金字塔

/*化繁为简
  *****
  *****
  *****
  *****
  *****
  五行五列
  for(int i = 1;i <= 5;i++){
     for (int j = 1; j <= 5 ; j++) {
         System.out.print("*");//不换行
     }
     System.out.println("*");//每五个换行
  }
  *		第一行输出第一个
  **	第二行输出第二个
  ***		..
  ****		..
  ***** 第五行输出第五个
  下三角 
  for(int i = 1;i <= 5;i++){
  	for(int j = 1;j <= i;j++)
  		System.out.print("*");//不换行
  	System.out.println();//每五个换行
  }
     *		第一行输出1个  前面有3个空格
    ***		第一行输出3个  前面有2个空格
   *****	第三行输出5个  前面有1个空格 空格 总行数 - 当前行数
  *******	第四行输出7个	 前面有0个空格 输出 2 * 当前行数 -1
  int sumline = 4;//总行数
  int i;//当前行
  int k;//记录空格
  int j;//记录*
  for(i = 1;i <= sumline;i++){
  	for(k = 1;k <= sumline - i;k++)
  		System.out.print(" ");
  	for(j = 1;j <= 2 * i - 1;j++)
  		System.out.print("*");
  	System.out.println();//换行
  }
     *		第一行输出1个  前面有3个空格,中间0个空格
    * *		第一行输出2个  前面有2个空格,中间1个空格
   *   *	第三行输出2个  前面有1个空格,中间3个空格  
  *******	第四行输出7个	 前面有0个空格,中间0个空格  输出 2 * 当前行数 -1
  1)前面的空格 总行数 - 当前行数
  2)输出*中加上判断
  		第一行是1个,最好一行2 * 当前行数 - 1
  		对于每行的行首行尾输出*,中间为空格
  3)中间的空格 2 * 当前行数 - 3
  int sumline = 4;//总行数
  int i;//当前行
  int k;//记录空格
  int j;//记录*
  for(i = 1;i <= sumline;i++){
     for(k = 1;k <= sumline - i;k++)//前空格
         System.out.print(" ");
     for(j = 1;j <= 2 * i - 1;j++){//输出*
        if(j == 1 || i == sumline || j == 2 * i - 1)
        //第一行(i==1,可不写因为当i=1是对应的j=1循环一次输出一个*)和最后一行(i==sumline)
        //每行的行首(j==1),行尾(j==2*i-1)
           System.out.print("*");
         else //其余情况输出空格1
           System.out.print(" ");
      }
     System.out.println();//换行
   }
*/
public class pyramid{
    public static void mian(){
        int sumline = 4;//总行数
        int i;//当前行
        int k;//记录空格
        int j;//记录*
        for(i = 1;i <= sumline;i++){
            for(k = 1;k <= sumline - i;k++)//前空格
                System.out.print(" ");
            for(j = 1;j <= 2 * i - 1;j++){//输出*
                if(j == 1 || i == sumline || j == 2 * i - 1)
                 //第一行(i==1,可不写因为当i=1是对应的j=1循环一次输出一个*)和最后一行(i==sumline)
                 //每行的行首(j==1),行尾(j==2*i-1)
                    System.out.print("*");
                else //其余情况输出空格1
                    System.out.print(" ");
            }
            System.out.println();//换行
        }
    }
}

打印空心菱形

/*
化繁为简
1.实心菱形
1)上三角
   *	第一行输出1个	前面空格3个
  ***	第二行输出3个	前面空格2个
 *****	第三行输出5个	前面空格1个
*******	第三行输出7个	前面空格0个
一个循环输出空格  总行数 - 当前行数
一个循环输出*   2 * 当前行数 - 1
int sumline = 4;
int i;//行数
int k;//空格
int j;//*
for(i = 1;i <= sumline;i++){//行数
	for(k = 1;k <= sumline - i;k++)//输出空格
		System.out.print(" ");
	for(j = 1;j <= 2 * i - 1;j++)//输出*
		System.out.print("*");
	System.out.println("");//换行
}
2)下三角
 *****	第一行输出5个 前面空格1个
  ***	第二行输出3个 前面空格2个
   *	第三个输出1个 前面空格3个
一个循环输出空格	当前行数
一个循环输出*		 2 * 当前行数 - 1
int lastline = sumline -1;//下三角
for(i = lastline;i >= 1;i--){//行数
	for(k = lastline;k >= i;k--)//空格 因为是从1到lastline 空格数=行数
		System.out.print(" ");
	for(j = 1;j <= 2 * i - 1;j++)//输出*
		System.out.print("*");
	System.out.println("");//换行
}
2.空心菱形
1)上三角
   *	第一行输出1个	前面空格3个	中间空格0个
  * *	第二行输出3个	前面空格2个	中间空格1个
 *   *	第三行输出5个	前面空格1个	中间空格3个
*     *	第三行输出7个	前面空格0个	中间空格5个
一个循环输出空格	总行数 - 当前行数
一个循环输出*		 
	第一行输出一个*   判断 行数 == 1
	其他行输出首位一个* 	首  末尾列==2*i-
	输出中间空格		
int sumline = 4;//总行数
int i;//当前行
int k;//记录空格
int j;//记录*
for(i = 1;i <= sumline;i++){
    for(k = 1;k <= sumline - i;k++)//前空格
       System.out.print(" ");
    for(j = 1;j <= 2 * i - 1;j++){//输出*
       if(j == 1  || j == 2 * i - 1)
        //第一行(i==1,可不写因为当i=1是对应的j=1循环一次输出一个*)
        //每行的行首(j==1),行尾(j==2*i-1)
          System.out.print("*");
       else //其余情况输出空格1
          System.out.print(" ");
       }
    System.out.println();//换行
}
2)下三角
 *   *	第一行输出5个 前面空格1个	中间空格3个
  * *	第二行输出3个 前面空格2个	中间空格1个
   *	第三个输出1个 前面空格3个	中间空格0个
   输出空格	i个
   输出中间2*i-1个,行首和行尾是*,其余为空格
int lastline = sumline -1;//下三角
for(i = lastline;i >= 1;i--){//行数
	for(k = lastline;k >= i;k--)//空格 因为是从1到lastline 空格数=行数
		System.out.print(" ");
	for(int j = 1;j <= 2 * i - 1;j++){//输出*
       //每行的行首j == 1 行尾j == 2*i-1
       if(j == 1 || j == 2 * i -1)
         System.out.print("*");
       else
         System.out.print(" ");
    }
	System.out.println("");//换行
}
*/
public class rhombus{
    public static void mian(){
        //上三角
        int sumline = 4;//总行数
        int i;//当前行
        int k;//记录空格
        int j;//记录*
        for(i = 1;i <= sumline;i++){
            for(k = 1;k <= sumline - i;k++)//前空格
                System.out.print(" ");
            for(j = 1;j <= 2 * i - 1;j++){//输出*
                if(j == 1  || j == 2 * i - 1)
                    //第一行(i==1,可不写因为当i=1是对应的j=1循环一次输出一个*)
                    //每行的行首(j==1),行尾(j==2*i-1)
                    System.out.print("*");
                else //其余情况输出空格1
                    System.out.print(" ");
            }
            System.out.println();//换行
        }
        //下三角
        int lastline = sumline -1;//下三角
		for(i = lastline;i >= 1;i--){//行数
            for(k = lastline;k >= i;k--)//空格 因为是从1到lastline 空格数=行数
                System.out.print(" ");
            for(j = 1;j <= 2 * i - 1;j++){//输出*
            //每行的行首j == 1 行尾j == 2*i-1
                if(j == 1 || j == 2 * i -1)
                 System.out.print("*");
               else
                 System.out.print(" ");
    		}
			System.out.println("");//换行
		}
    }
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-02-03 01:03:47  更:2022-02-03 01:04:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:50:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码