package cn.com.training.student;
import java.util.Scanner;
/*
综合案例12(求数字和)
训练描述
从键盘上录入一个大于100的三位数,求出100到该数字之间满足
如下要求的数字之和:
1.数字的个位数不为7;
2.数字的十位数不为5;
3.数字的百位数不为3;
例如:
输入 105
输出 410
操作步骤描述
1.从键盘上录入一个三位数;
2.定义一个变量,用来记录满足条件的数字累加之和;
3.使用for循环获取100到该数字之间的所有数字;
4.得到当前拿到的这个数的个位数,十位数,百位数;
5.判断个位数不为7,十位数不为5,百位数不为3;
6.如果满足条件就累加;
7.循环结束后打印累加之和;
*/
public class Training12 {
public static void main(String[] agrs){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个大于一百的三位数:");
int i = sc.nextInt();
int sum = 0;
//使用for循环获取100到该数字之间的所有数字
for(int j = 101;j<i;j++){
if(i/100!=3 && (i/10)%10!=5 && i%10!=7){
System.out.println(j);
sum +=j;
}
}
System.out.println("该数的百位数是:"+i/100);
System.out.println("该数的十位数是:"+(i/10)%10);
System.out.println("该数的个位数是:"+i%10);
System.out.println("符合条件的数字的总和为:"+sum);
/*
1.数字的个位数不为7;
2.数字的十位数不为5;
3.数字的百位数不为3;
*/
sc.close();
}
}
package cn.com.training.student;
import java.util.Scanner;
/*
综合案例13(菜单模拟)
训练描述
请按如下要求编写程序,打印菜单:
1.从键盘上录入一个1到5的数字;
2.当数字为1时打印菜单"新建";
3.当数字为2时打印菜单"打开文件";
4.当数字为3时打印菜单"保存";
5.当数字为4时打印菜单"刷新";
6.当数字为5时打印菜单"退出",并退出程序;
此行代码可以终止java程序运行: System.exit(0);
操作步骤描述
1.从键盘上录入一个1位数(1-5)
2.使用switch语句判断录入的数字为哪个菜单编号,并打印对应的菜单名称;
3.使用while循环,重复执行1,2两个步骤;
*/
public class Training13 {
public static void main(String[] agrs){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数字:");
int num = scanner.nextInt();
while(true){
switch(num){
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("退出");
System.exit(0);
break;
default:
System.out.println("请重新输入!");
}
}
//scanner.close();
}
}
package cn.com.training.student;
import java.util.Random;
import java.util.Scanner;
/*
综合案例14(猜数字游戏)
训练描述
猜数字小游戏
系统产生一个1-100之间的随机数,请猜出这个数据是多少?
操作步骤描述
A:系统产生一个1-100之间的随机数
Random r = new Random();
int number = r.nextInt(100)+1;
B:键盘录入我们要猜的数据
C:比较这两个数据,看我们猜的是否正确
如果大了,提示:你猜的数据大了
如果小了,提示:你猜的数据小了
如果相等,提示:恭喜你,猜中了
D:为了实现多次猜数据,我们就要加入循环,而我们又不知道猜多少次能中。怎么办呢?
死循环:while(true) {...}
for(;;) {...}
*/
public class Training14 {
public static void main(String[] agrs){
Scanner sc = new Scanner(System.in);
System.out.println("猜数字");
System.out.println("请随机输入1-100之间的数字");
int i = sc.nextInt();
Random ra = new Random();
int j = ra.nextInt(100);
System.out.println(j);
while(i>-100){
if(i>j){
System.out.println("猜大了!请重新猜!");
}else if(i<j){
System.out.println("猜小了!请重新猜!");
}else if(i==j){
System.out.println("恭喜猜对了!");
break;
}
System.out.println("请重新输入:");
i = sc.nextInt();
}
sc.close();
}
}
package cn.com.training.student;
/*
综合案例15(珠默朗玛峰猜想)
训练描述
分析以下需求,并用代码实现:while
1.珠穆朗玛峰高度为8848米,有一张足够大的纸,厚度为0.0001米。
2.请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
*/
public class Training15 {
public static void main(String[] agrs){
double paper = 0.0001;
int count = 0;
while(true){
if(paper<8848){
paper = paper *2;
count++;
}else {
break;
}
}
System.out.println("折叠"+count+"次"+",可以折成珠穆朗玛峰的高度");
}
}
package cn.com.training.student;
import java.util.Scanner;
/*
综合案例16(求数组元素的最小值)
定义一个含有五个元素的数组,并为每个元素赋值,求数组中所有元素的最小值
操作步骤描述
1. 定义5个元素数组
2.可以使用初始化数组的两种方式之一为数组元素赋值
3.遍历数组求数组中的最小值并输出
*/
public class Training16 {
public static void main(String[] agrs){
Scanner sc = new Scanner(System.in);
System.out.println("请输入五个数字");
int[] nums = {0,0,0,0,0};
nums[0] = sc.nextInt();
for(int i=0;i<nums.length;i++) {
nums[i] = sc.nextInt();
}
int min = getMin(nums);
System.out.println("min="+min);
sc.close();
}
static int getMin(int[] nums){
int min = nums[0];
for(int i=0;i<nums.length;i++){
if(nums[i]<min){
min = nums[i];
}
}
return min;
}
}
package cn.com.training.student;
import java.util.Random;
/*
综合案例17(数组遍历)
训练描述
定义一个长度为20的一维数组,给每个元素赋值. (要求数组
中每个元素的值是0-100的随机数)
遍历数组打印每个元素的值
操作步骤描述
1. 定义长度为20的数组
2. 创建Random引用数据类型的变量
3.生成20个0-100的随机数,为每一个元素赋值
4. 遍历数组,并打印每一个元素
*/
public class Training17 {
public static void main(String[] agrs){
//导入随机数包,生成随机数
Random ra = new Random();
//定义一个20元素的数组
int[] arr = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
arr[0] = ra.nextInt(100);
//使用for循环遍历数组
for (int i=0;i<arr.length;i++) {
arr[i] = ra.nextInt(100);
}
printArray(arr);
}
//重新定义一个打印数组的方法
public static void printArray(int[] arr){
//利用for循环遍历数组
for(int i=0;i<arr.length;i++){
if(i==0){
System.out.print("[");
}
if(i==arr.length-1){
System.out.print(arr[i]+"]");
}else{
System.out.print(arr[i]+",");
}
}
}
}