作业1:判断字母是否是小写
源代码(图1)
图 1
运行结果(图2)
图2
作业2:输1~7整数输出星期一到星期日简写
源代码
运行结果
作业3:
源代码
运行结果
作业4
源代码
作业5
源代码
运行结果
20220607
作业一
输出100以内9的倍数,中间用tab键间隔,每5个换行
源代码
package Works;
/**
* 1、输出100以内9的倍数,中间用tab键间隔,每5个换行
* 分析:
* 1、题目是求9的倍数那么这个数一定能被9整除
* 2、需要求得范围是100以内小于9的数一定不能被9整除所以范围是[9,100]
* 3、其他条件输出时加一个tab键的距离,每循环5次换一次行
*/
public class Work1 {
public static void main(String[] args) {
int i=1, c=0; /*定义循环变量i和计数器C;
i定义在for循环外面若是c是计数器方便换行*/
System.out.println("100以内9的倍数有:");
for(;i<=100;i++){ //100以内9的倍数从将循环次数设置到小于等于100
if(i%9 == 0) { //判断是否能被9整除
System.out.print(i+"\t");
c++;
if(c%5 == 0) {//判断换行
System.out.print("\n");
}
}
}
}
}
运行结果:
作业二
- 某学校2012年有学生200人,每年增长25%。请问按此增长速度,到哪一年学生人数将达到1000人?
源代码
package Works;
/*
* 2、某学校2012年有学生200人,每年增长25%。请问按此增长速度,到哪一年学生人数将达到1000人?
* 分析:
* 1、确定循环内容:已知2012年 200人 25%增长率 求哪年增长到1000人,
* 先算增长一年: 2013年人数 = 2012年人数 + 增长人数(2012年人数*增长率25%)
* 再算一年: 2014年人数= 2013年人数 + 增长人数(2013年人数*增长率25%)
* 需要循环的主体计算: 前一年人数 + 增长人数(前一年人数*增长率2012年人数)
* 增长年为一周期所以就把年定以为循环变量:yea;
* 定义变量前一年人数:poe;
* 2、确定循环条件:
* 从2012年开始计算:yea=200;
* 初始人数是200人:poe=200;
* 循环计算到人数为1000人时停止,即:yea <= 1000;
*
*/
public class Work2 {
public static void main(String[] args) {
int poe=200; //定义变量人数
int yea=2012; //定义循环变量
while(poe<=1000) {
poe=poe+poe*25/100; /* 前一年人数 + 增长人数(前一年人数*增长率2012年人数) */
yea++;
}
System.out.print(yea+"年人数达到1000\n");
}
}
运行结果
作业三
- 求两个数最大公约数
/*
* 3、求两个数最大公约数
* 分析:
* 1、确定循环内容:两个数的公约数是可以同事整除两数的数,
* 即依次用同一个数对两数求余
*
* 2、确定循环条件:
* 一个数最大只可以被自己整除,
* 那么两数最大公约数最大最多和小的数相等;
* 如果
* 两数相等 公约数是两数本身 不用循环
* 两数不相等 最大公约数小于两数小的数 [1,小的数]
*
*
*
*/
public class Work3 {
public static void main(String[] args) {
// 定义常量
final int NUM0 = 91;
final int NUM1 = 27;
int n = NUM1-1;//定义循环变量,递减
while(NUM1%n != 0 || 0 != NUM0%n ) {
n--;
}
System.out.print(NUM0 +"和"+ NUM1+"的最大公约数是"+(n)+"\n");
// 定义变量
int num0 = 99;
int num1 = 81;
int m1=0;
//定义循环变量,递曾(不是最优,可能多出必要的循环次数)
for(int m=1; m<=num1;m++) {
if(num1%m == 0 && num0%m == 0) {
m1=m ;
}
}
System.out.print(num0+"和"+num1+"的最大公约数是"+m1);
}
}
运行结果
作业四
源代码
package Works;
import java.util.Scanner;
/*
* 输入从周一至周五每天的学习时间(以小时为单位),并计算每日平均学习时间。输出效果如下:
* 请输入周一的学习时间:8
请输入周二的学习时间:9
请输入周三的学习时间:7
请输入周四的学习时间:10
请输入周五的学习时间:8
每日平均学习时间是:8.4小时
* 分析
* 1、循环内容:输入周一到周五学习时间
* 2、循环范围:周一到周五[1,5]
* 3、计算日平均学习时间
*/
public class Work4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int weeTim,sum = 0; //定义变量日学习时间weeTim,和总时间sum
for(int i=1;i<=5;i++ ) {
System.out.println("请输入周"+i+"的学习时间");
weeTim=sc.nextInt();
sum=sum+weeTim;//求一周总学习时间
}
double average=sum/5.0;
System.out.println("本周日平均学习:"+average+"小时");//计算日平均学习时间
}
}
运行结果
作业五
源代码
package Works;
import java.util.Scanner;
/*
* 5、计算顾客比例(循环输入十位顾客年龄:计算三十岁之上和之下的比例)
*
* 分析
* 1、循环内容:输入顾客年龄
* 2、循环范围:十位[1,10]
* 3、计算计算三十岁之上和之下的比例
*/
public class Work5 {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int age , num=0;
/*
* 循环输入并对30之上的顾客计数
*/
for(int i = 1; i<=10; i++){
System.out.print("请输入"+i+"顾客年龄");
age = input.nextInt();//循环输入
if(age>=30){
num++; //对年龄大于30岁的顾客计数
}
}
//分别计算三十岁之上的顾客和30岁之下与总顾客数的比例
System.out.print("30岁之上的比例是:"+(num/10.0*100) +"%");
System.out.print("30岁之上的比例是:"+((1-num/10.0)*100) +"%");
}
}
运行结果
作业六
源代码:
package Works;
import java.util.Scanner;
/*
* 6、整数反转:如12345,输出54321(选做)
* 分析
* 1、循环内容:如果要反转一个数就要拆分一个数字的各个计数单位上的数字
* 而拆分一个整数就要一次从这个数的最高位对这个数各个位上的最小值
* 比如十位是10
* 2、循环范围:这个数一共的位数
*
*/
public class Work6{
public static void main(String[] args) {
int num = 12345;
int mun = 0;
int i=1;
int j=1;
//计算最高位的最小范围
while(i<num/10){
i=i*10;
}
//把最高位的计数单位赋给中间变量
j=i;
int u=0;
do {
u++;
System.out.println("12345的第 "+u+"高位"+num/j);
mun=mun+(num/j)*(i/j);//依次计算各位上的值并求到写的最终值
num=num%j;
j=j/10;
}while(j>=1);
System.out.println("12345 "+"位数倒写是"+mun);
}
//运行结果
/*
12345的第 1高位1
12345的第 2高位2
12345的第 3高位3
12345的第 4高位4
12345的第 5高位5
12345 位数倒写是54321
*/