Java经典练习题_Day03
一、选择
B D(死循环) E(switch) BC
二、编程
1、读入一个整数,表示一个人的年龄。
如果小于6岁,则输出“儿童”, 6岁到13岁,输出“少儿”; 14岁到18岁,输出“青少年”; 18岁到35岁,输出“青年”; 35岁到50岁,输出“中年”; 50 岁以上输出“中老年”。
import java.util.*;
/*
* 读入一个整数,表示一个人的年龄。
* 如果小于6岁,则输出“儿童”,
* 6岁到13岁,输出“少儿”;
* 14岁到18岁,输出“青少年”;
* 18岁到35岁,输出“青年”;
* 35岁到50岁,输出“中年”;
* 50 岁以上输出“中老年”。
*/
public class AgeChoose {
public static void main(String[] args) { while(true){
System.out.println("请输入年龄:");
Scanner s = new Scanner(System.in);
int Age = s.nextInt(); if(Age < 0 ){
System.out.println("输入错误!请重新输入!");
continue;
}
else if(Age >= 0 && Age < 6){ // 如果小于6岁,则输出“儿童”
System.out.println("儿童");
break;
}
else if(Age >= 6 && Age <= 13){ // 6岁到13岁,输出“少儿”
System.out.println("少儿");
break;
}
else if(Age >= 14 && Age < 18){ // 14岁到18岁,输出“青少年”
System.out.println("青少儿");
break;
}
else if(Age >= 18 && Age < 35){ // 18岁到35岁,输出“青年”
System.out.println("青年");
break;
}
else if(Age >= 35 && Age < 50){ // 35岁到50岁,输出“中年”
System.out.println("中年");
break;
}
else{ // 50 岁以上输出“中老年”
System.out.println("中老年");
break;
} }
}
}
2、读入一一个整数,如果是1~5之间,则分别输出5个福娃的名字,否则输出“北京欢迎你”。
import java.util.*;
//import java.util.regex.*;
/*
* 读入一个整数,
* 如果是1~5之间,则分别输出5个福娃的名字,
* 否则输出“北京欢迎你”。
* */
public class ZhengShu1_5 {
public static void main(String[] args) {
System.out.println("请输入一个整数:");
Scanner s = new Scanner(System.in);
int a = s.nextInt();
// 如何判断输入的是否是整数????? switch(a){
case 1:System.out.println("贝贝");break;
case 2:System.out.println("晶晶");break;
case 3:System.out.println("欢欢");break;
case 4:System.out.println("莹莹");break;
case 5:System.out.println("妮妮");break;
default:System.out.println("北京欢迎你过!");
}
}
}
3、读入三个整数,输出这三个整数中最大的一个.
import java.util.Scanner;
/*
* 读入三个整数,输出这三个整数中最大的一个.
*/
public class MaxOrMin {
public static void main(String[] args) {
System.out.println("请输入3个整数:");
Scanner s = new Scanner(System.in);
int[] Arr = new int[2];
int i = 0;
// 循环接收输入的数据
for(i = 0; i <= 2; i++){
Arr[i] = s.nextInt();
}
// 对数据进行判断
if(Arr[0] >= Arr[1] && Arr[0] >= Arr[2] )
System.out.println("最大整数:" + Arr[0]);
else if(Arr[1] >= Arr[0] && Arr[1] >= Arr[2] )
System.out.println("最大整数:" + Arr[1]);
else
System.out.println("最大整数:" + Arr[2]);
}
}
4、读入一一个表示年份的整数,判断这一年 是否是闰年。如何判断-一个年份是否是闰年:
import java.util.*;
/*
*读入一一个表示年份的整数,判断这一年 是否是闰年。如何判断-一个年份是否是闰年:
*1)如果这个年份能够被4整除,且不能被100 整除,则这一年是闰年。例如, 1996年是闰年,而相应的, 1993年就不是闰年。
*2)如果这个年份能够被100整除,则这个数必须要能被400整除,才是闰年。例如,2000 年是闰年, 1900年不是闰年。
*/ public class RunNian {
public static void main(String[] args) {
System.out.println("请输入一个年份:");
int Age;
while(true){
Scanner s = new Scanner(System.in);
Age = s.nextInt(); if(Age % 4 == 0 && Age % 100 != 0){ // 被4整除,且不能被100 整除
System.out.println(Age + "年是闰年");
continue;
}
else if(Age % 100 == 0 && Age % 400 == 0){ // 被100整除,且被400整除
System.out.println(Age + "年是闰年");
continue;
}
else
System.out.println(Age + "年不是闰年");
}
}
}
5、完成一一个简单的计算器程序。
1)读入两个整数
2)提示用户选择对这两个整数的操作,即输出
1、+
读入用户的选择,输出运算结果。
import java.util.*;
/*方法1
*5、完成一个简单的计算器程序。程序要求如下:
1)读入两个整数
2)提示用户选择对这两个整数的操作,即输出
1、+
2、-
3、*
4、/
请输入您的选择:
读入用户的选择,输出运算结果。
*/
public class Operate4 {
public static void main(String[] args) {
double Num_1, Num_2;
int Operate = 1;
System.out.println("请输入要运算的整数:");
Scanner s = new Scanner(System.in);
Num_1 = s.nextDouble();
Num_2 = s.nextDouble(); System.out.println(" 1、+\n 2、-\n 3、*\n 4、/\n 请输入您的选择:");
Scanner s2 = new Scanner(System.in); Operate = s2.nextInt();
if(Operate >4 && Operate < 1)
System.out.println("运算方式选择错误!");
else{
switch(Operate){
case 1:
System.out.println(Num_1 + " + " + Num_2 + " = " + (Num_1 + Num_2));break;
case 2:
System.out.println(Num_1 + " - " + Num_2 + " = " + (Num_1 - Num_2));break;
case 3:
System.out.println(Num_1 + " * " + Num_2 + " = " + (Num_1 * Num_2));break;
case 4:
System.out.println(Num_1 + " / " + Num_2 + " = " + (Num_1 / Num_2));break;
default:System.out.println("符号非法!");
}
}
}
}
import java.util.*;
/*方法2
*5、完成一个简单的计算器程序。程序要求如下:
1)读入两个整数
2)提示用户选择对这两个整数的操作,即输出
1、+
2、-
3、*
4、/
请输入您的选择:
读入用户的选择,输出运算结果。
*/
public class Switch {
public static void main(String[] args) {
double Num_1, Num_2; System.out.println("请输入要运算的整数:");
Scanner s = new Scanner(System.in);
Num_1 = s.nextDouble();
Num_2 = s.nextDouble(); System.out.print(" +\n -\n *\n /\n 请输入您的选择:");
Scanner s2 = new Scanner(System.in);
String Operate = s2.nextLine(); switch(Operate){
case "+":
System.out.println(Num_1 + " + " + Num_2 + " = " + (Num_1 + Num_2));break;
case "-":
System.out.println(Num_1 + " - " + Num_2 + " = " + (Num_1 - Num_2));break;
case "*":
System.out.println(Num_1 + " * " + Num_2 + " = " + (Num_1 * Num_2));break;
case "/":
System.out.println(Num_1 + " / " + Num_2 + " = " + (Num_1 / Num_2));break;
}
}
}
6、 托运计费问题:
import java.util.*;
/*
* 托运计费问题:
* 当货物重量小于20公斤的时候,收费5元,
* 大于20公斤小于100公斤的时候超出20公斤的部分按每0.2元每公斤计费,
* 如果超出100公斤的时候,超出的部分按照每公斤0.15元计算。
* 读入贷物的重量,输出计算之后货物的运费。
*/
public class YunFei {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入:");
int weight = s.nextInt();
double price = 0; if(weight < 0)
System.out.println("输入不合法");
else{
if(weight <= 20){
price = weight * 0.35;
}
else if(weight >= 20 && weight<= 100){
price = weight * 0.35 + (weight - 20) * 0.5;
}
else{
price = weight * 0.35 + (weight - 20) * 0.5 + (weight - 100) * 0.8;
}
}
System.out.println(price);
}
}
7、读入一个三位数,计算其各位数字之和。例如: 123, 各位数字之和为6
import java.util.*;
/*
* 读入一个三位数,计算其各位数字之和。
* 例如: 123, 各位数字之和为6
*/
public class SanWeiShu {
public static void main(String[] args) {
System.out.println("请输入一个三位数:");
Scanner s1 = new Scanner(System.in);
int Num = s1.nextInt(); if(Num >= 100 && Num <= 999){
int Num1 = (Num / 100); // 获得百位上的数字
int Num2 = (Num - Num1 * 100) / 10; // 获得十位上的数字
int Num3 = Num - ((Num1 * 100) + Num2 * 10); // 获得个位上的数字
int Sum = Num1 + Num2 + Num3; // 求和
System.out.println(Num + "各位数字之和为:" + Sum);
}
else
System.out.println("您输入的不是3位数!"); }
}
8、计算1+2+3+...+100的和
/*计算1+2+3+...+100的和*/
public class Sum01 {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i <= 100; i++){
sum += i;
}
System.out.println("sum = " + sum);
}
}
9、计算1+3+5+...+99的和
/*计算1+3+5+...+99的和*/
public class Sum02 {
public static void main(String[] args) {
int i;
int sum = 0;
for(i = 1; i <= 100; i++){
if(i % 2 == 1)
sum += i;
}
System.out.println("sum = " + sum);
}
}
10.读入一个小于10的整数n,输出它的阶乘n!
import java.util.*;
/*读入一个小于10的整数n,输出它的阶乘n!*/ public class Factorial {
public static void main(String[] args) {
System.out.print("请输入一个10以内的数字:");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int sum = 1;
if(n >10 && n < 0){
for(int i = n; i > 0; i--){
sum *= i;
}
System.out.println(sum);
}
else
System.out.println("输入错误!");
}
}
11.求100 以内所有能被3整除但不能被5整除的数字的和。
/*求100 以内所有能被3整除但不能被5整除的数字的和*/ public class Division {
public static void main(String[] args) {
int i = 0;
int sum = 0;
for(i = 0; i <= 100; i++){
if(i % 3 == 0 && i % 5 != 0)
sum += i;
}
System.out.println("sum = " + sum);
}
}
12.“百钱买百鸡”是我国古代的著 名数学题。
/*“百钱买百鸡”是我国古代的著 名数学题。
* 题目这样描述:
* 3文钱可以买1只公鸡,
* 2文钱可以买一只母鸡,
* 1文钱可以买3只小鸡。
* 用100文 钱买100只鸡,
* 那么各有公鸡、母鸡、小鸡多少只?
*/ public class BuyChicken {
public static void main(String[] args) {
int GJ;
int MJ;
//int XJ = (100 - GJ - MJ); //GJ + MJ + XJ == 100; for(GJ = 0; GJ <= 33; GJ++){
for(MJ = 0; MJ <= 50; MJ++){
if(GJ * 3 + MJ * 2 + (100 - GJ - MJ)/3.0 == 100)
System.out.println("公鸡:" + GJ + " 母鸡:" + MJ + " 小鸡:" + (100 - GJ - MJ));
}
}
}
}
13.搬砖问题:
/*搬砖问题:
* 36块砖,36人搬,
* 男搬4,女搬3,两个小孩拾1砖,
* 要求一次全搬完,
* 问男、女和小孩各若干?
*/
public class MovingBricks {
public static void main(String[] args) {
int Man;
int Woman; for(Man = 0; Man <= 9; Man++){
for(Woman = 0; Woman <= 12; Woman++){
if(Man * 4 + Woman * 3 + (36 - Man - Woman) / 2 == 36)
System.out.println("Man:" + Man + " Woman:" + Woman + " Childen:" + (36 - Man - Woman));
}
}
}
}
14.编程找出四位整数abcd 中满足下述关系的数: (ab+cd) (ab+cd) =abcd
/*编程找出四位整数abed 中满足下述关系的数:
* (ab+cd) (ab+cd) =abcd
*/
public class abcd2 {
public static void main(String[] args) { int Num, a, b, c, d, ab, cd, abcd; for(Num = 1000; Num <= 9999; Num++){ a = Num / 1000; // 千位
b = (Num - a * 1000) / 100; // 百位
c = (Num - a * 1000 - b * 100) / 10; // 十位
d = (Num - a * 1000 - b * 100 - c * 10); // 个位 ab = (a * 10 + b);
cd = (c * 10 + d);
abcd = (ab + cd) * (ab + cd); if(abcd == Num)
System.out.println(Num);
} }
}
15.读入一一个整数n,输出如下图形:
当输入n=3时,输出:
★
★★★
★★★★★
当输入n=4时,输出:
★
★★★
★★★★★
★★★★★★★
import java.util.*;
/*
读入一一个整数n,输出如下图形:
当输入n=3时,输出:
★
★★★
★★★★★
当输入n=4时,输出:
★
★★★
★★★★★
★★★★★★★
*/
public class Star {
public static void main(String[] args) {
System.out.println("请输入:");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
for(int i = 1; i <= n; i++){
System.out.println(" "); // 换行 for(int w = 1; w <= (n + 1 - i); w++){ // 打印空格
System.out.print(" ");
} for(int j = 1; j <= (i*2-1); j++){ // 打印星星
System.out.print("★");
} }
}
}
16.输出99 乘法表
/*输出99 乘法表*/
public class ChengFa {
public static void main(String[] args) {
for(int i = 1; i <= 9; i++) {
System.out.println(" ");
for(int j = 1; j <= 9 - i; j++) {
System.out.print(" " + i + " * " + j + " = " + i * j);
}
}
}
}
public class ClassTest01 {
public static void main(String[] args) {
for(int i=1; i<=9; i++){
for(int j=1; j<=i; j++){
System.out.print(" " + i + "*" + j + " = " + i*j);
}
System.out.println("");
}
}
}
17.求水仙花数。
/*求水仙花数。
* 所谓水仙花数,是指一一个三位数abc,
* 如果满足a3+ b3+c3=abc,则abc是水仙花数。
*/
public class ShuiXian {
public static void main(String[] args) {
int abc = 100; for(abc = 100; abc <= 999; abc++) {
int a = abc / 100;
int b = (abc - a * 100) / 10;
int c = abc % 10; if((a *10 + 3 + b * 10 * 3 + c * 10 * 3 ) == abc)
System.out.println(abc);
}
}
}
18.输入一个整数,计算它各位上数字的和。
注意:是任意位的整数
import java.util.*;
/*
* 输入一个整数,计算它各位上数字的和。
* (注意:是任意位的整数)
*/
public class Sum02 {
public static void main(String[] args) {
System.out.print("请输入任意一个整数:");
Scanner s = new Scanner(System.in);
int sum = 0;
int t = s.nextInt(); while(t!=0){
sum = sum + t % 10;
t = t / 10;
}
System.out.println("各位数字的和:" + sum);
}
}
19.输入一 整数A,判断它是否质数。
import java.util.*;
/*输入一 整数A,判断它是否质数。*/
public class PrimeNumber {
public static void main(String[] args) {
System.out.println("请输入一个整数:");
Scanner s = new Scanner(System.in);
int A = s.nextInt(); for(int i = 2; i <= A / 2; i++) {
if(A / i == 0) {
System.out.println("不是质数");
break;
}
else {
System.out.println("是质数");
break;
}
}
}
}
20.如果一个数等 于其所有因子之和,我们就称这个数为"完数"
/*如果一个数等 于其所有因子之和,我们就称这个数为"完数"
* 例如6的因子为1,2,3, 6=1+2+3, 6就是一一个完数.
* 请编程打印出1000以内所有的完数*/
public class WanShu {
public static void main(String[] args) {
int i = 1;
int j = 1;
for(i = 1; i <= 1000; i++) {
int sum = 0;
for(j = 1; j <= i - 1; j++) {
if(i % j == 0) {
sum += j;
}
}
if(sum == j)
System.out.println(sum);
}
}
}
21.计算圆周率
/*计算圆周率
* 中国古代数学家研究出了计算圆周率最简单的办法:
* PI=4/1-4/3+4/5-4/ 7+4/9-4/11+4/13-4/15+4/17......
* 这个算式的结果会无限接近于圆周率的值,
* 我国古代数学家祖冲之计算出,圆周率在3.1415926和3.1415927之间,
* 请编程计算,要想得到这样的结果,他要经过多少次加减法运算?*/
public class Pai {
public static void main(String[] args) {
final double a = 4.0; //表示被除数
double PI = 0; //表示圆周率
int b = -1; //表示除数
int count = 0; //加减法次数计数变量 while (PI >= 3.1415927 || PI <= 3.1415926) {
b +=2;
PI = PI + a/b;
count++; b += 2;
PI = PI - a/b;
count++;
}
System.out.println("总共需要经过" + count +"次加减法运算");
}
}
22.faibonacci
import java.util.*;
/*已知: faibonacci ( 费波那契)数列的前几个数分别为0,1, 1,2,3,.....
* 从第3项开始,每一项都等于前两项的和。
* 读入一个整数n,编程求出此数列的前n项。*/
public class Faibonacci {
public static void main(String[] args) {
System.out.print("请输入一个整数n:");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int[] a = new int[n];
a[0] = 0;
a[1] = 1;
System.out.println(a[0] + "\n" + a[1]); if(n < 2) {
System.out.println("请输入大于2的整数!");
}
else {
for(int i = 2; i < n; i++) {
a[i] = a[i - 1] + a[i - 2];
System.out.print(a[i]);
}
}
}
}
23.一个int 类型的整数由32个二进制位组成,每个二进制位的值要么为0要么为1。
import java.util.*;
/*一个int 类型的整数由32个二进制位组成,每个二进制位的值要么为0要么为1。
* 要求读入一个int类型的整数n,计算它的32个二进制位中总共有多少位为1?
*/
public class Int {
public static void main(String[] args) {
System.out.print("请输入一个int类型的整数:");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int sum = 0;
int n1 = n; while(n != 0) {
sum = sum + n % 2;
n = n / 2;
}
System.out.println(n1 + "的二进制位中总共有" + sum + "位为1");
}
}
Java经典练习题_Day03的更多相关文章
- Java 经典练习题_Day010
final 变量能被显式地初始化并且只能初始化一次.被声明为 final 的对象的引用不能指向不同的对象.但是 final 对象里的数据可以被改变.也就是说 final 对象的引用不能改变,但是里面的 ...
- Java经典练习题_Day04
一.选择题 1. 下列关于数组的说法正确的是:(A) A. 在Java中数组的长度是可变的 B. 数组中存储的数据的类型是相同的 C. 数组在进行扩容操作的时候源数组的地址不发生改变 D. int[] ...
- Java经典练习题_Day05
一. 选择题 1.下列各项中的各项定义正确的是:(ACD) A. public static void m(){} B. public void static m(){} C. public ...
- Java 经典练习题_Day06
面向对象与面向过程的比较 类与对象的关系 成员变量和局部变量 构造方法 this 构造代码块 局部代码块 匿名对象 一. 选择题 1.下列各项中关于面向对象及面向过程的说法错误的是:(BDE) A. ...
- 【视频+图文】Java基础经典练习题(一)输出2-100之间的素数,及素数个数
目录 第一题:判断2-100之间有多少个素数,并输出所有素数. 1.视频讲解: 2.思路分析: 代码讲解:以i=4为例 4.为大家准备了彩蛋: 能解决题目的代码并不是一次就可以写好的 我们需要根据我们 ...
- 【视频+图文】Java经典基础练习题(三):输入3个整数,并将其由小到大输出
目录 一.视频讲解 二.思路分析 总结: 三.代码+详解+结果 四.彩蛋 能解决题目的代码并不是一次就可以写好的 我们需要根据我们的思路写出后通过debug模式找到不足再进行更改 多次测试后才可得到能 ...
- JAVA经典算法40题及解答
JAVA经典算法40题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...
- Java经典算法四十例编程详解+程序实例
JAVA经典算法40例 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程 ...
- JAVA经典算法40题
1: JAVA经典算法40题 2: [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 3 ...
随机推荐
- Java线程的五种状态详解
状态转换图 1.new状态:通过new关键字创建了Thread或其子类的对象 2.Runnable状态:即就绪状态.可从三种状态到达,new状态的Thread对象调用start()方法,Running ...
- python金融分析项目
1.进入ipython: C:\Users\Administrator>ipython Python (v3. , ::) [MSC v. bit (AM D64)] Type 'copyrig ...
- nodejs编译sass模块包 node-compass,与gulp包gulp-sass使用方法
简介:node express或者就是node项目中,要自动编译sass方法很多,比如gulp 比如考拉,比如今天我想说的这个包node-compass. 编译sass的三种方法: 前提条件: 都需要 ...
- Buildroot构建指南——工具链
Linux系统的交叉编译工具链用来将源代码变成bin文件或者库文件的一个软件.一般大家默认工具链等于gcc或者arm-linux-gcc,但是实际上,gcc只是工具链的编译器部分,不是全部,制作一个工 ...
- d3.js入门之DOM操作
上篇成功在vue项目中把d3跑起来了,接下来对d3的基本操作做个汇总: 一.d3元素选择器 d3.select(".skill"):选择第一个类名为skill的元素并返回这个元素对 ...
- HashSet实现原理及源码分析
HashSet简介 HashSet是Set接口实现,它按照Hash算法来存储集合中的元素 不保证元素顺序 HashSet是非同步的,如果多个线程同时访问一个HashSet,要通过代码来保证其同步 集合 ...
- 在ROS Kinetic中使用Gazebo 8进行机器人仿真
在ROS Kinetic中使用Gazebo 8比在ROS Indigo中使用Gazebo 3-8要容易一些. 目前最新稳定版本的Gazebo8为8.1.1. 安装流程如下: $ sudo apt-g ...
- EasyRMS录播管理服务器项目实战:windows上开机自启动NodeJS服务
本文转自EasyDarwin开源团队成员Penggy的博客:http://www.jianshu.com/p/ef840505ae06 近期在EasyDarwin开源团队开发一款基于EasyDarwi ...
- 提问:错误提示--命名空间“System.Web”中不存在类型或命名空间名称“UI”(是缺少程序集引用吗?) 如何解决??
转自:http://topic.csdn.net/u/20080723/21/7e1e06cb-d013-4675-ba9b-9b39d49d0a0e.html 1) 添加对System.Web.dl ...
- linux命令-xz
tar.xz文件如何压缩解压xz是绝大数linux默认就带的一个压缩工具,压缩率很高. xz压缩文件方法 默认压缩等级是6.要设置压缩率加入参数 -0 到 -9调节压缩率. xz -z [文件名] 不 ...