在黑马学了一个月了,对于我这种真的零基础的人来说. 不像我们班的那些人说好的零基础结果骗子,一个个大佬.躲在角落瑟瑟发抖,我个人感觉 继承班一开始学 对于我是真的很吃力,没思路 不熟悉语法 那时候一下子,甚至有回去的打算.
后面上了就业班,就没有那总感觉了, 从0到1是最难的 从1到100相对来说就没有那么难了.
写够万行代码不行都行
给你们第四天的作业你们可以试试
1.分析以下需求,并用代码实现:
(1)打印1-100之间的所有素数及个数
(2)每行输出5个满足条件的数,之间用空格分隔
(3)如果一个大于1的自然数,这个数只能被1和其本身整除,这个数就叫素数。
(4)如:2 3 5 7 11
2.分析以下需求,并用代码实现:
(1)珠穆朗玛峰高度为8848米,有一张足够大的纸,厚度为0.001米。
(2)请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
3.分析以下需求,并用代码实现:
(1) 计算15+25+35+....+1005的和
4.分析以下需求,并用代码实现:
(1)打印倒直角三角形
*****
****
***
**
*
(2)打印等边三角形(题目较难,可作为扩展)
*
* *
* * *
* * * *
5.分析以下需求,并用代码实现(每个小需求都要封装成一个方法):
(1)求两个数据之和(两个整数或者两个小数)
(2)判断两个数据是否相等(两个整数或者两个小数)
(3)获取两个数中较大的值(两个整数或者两个小数)
(4)打印m行n列的星形矩形
(5)打印nn乘法表
6.定义一个方法名blackjack接收两个大于0的int类型值,返回两个数中不大于21且最接近21的数,
如果两个数都大于21,则返回0;
7.定义一个方法接收3个int值,A B C,返回他们的总和。
然而,如果其中一个值与另一个值相同,则它们不参与求和。如果三个都相同则都不求和。
//扩展题,有难度
8.我们想做一排砖(长度自己定),我们有一些小砖(每块1英寸)和大砖(每块5英寸),
如果用我们选择的砖块的数量能够拼接成功,则返回true;否则返回false,
例如:makeBricks(3, 1, 8) → true
(尽量不使用循环,太耗费时间,会导致后台验证超时)
思路:
1, 第一个参数代表小砖,第二个参数代表大砖,第三个参数代表总寸数
2,大砖的寸数加小砖寸数能够刚好拼接成总寸数,就可以返回true
3,c/5 需要的大砖 c%5需要的小砖
//扩展题,有难度
9.我们要做一包规定质量的巧克力,有每个一公斤和每个五公斤的巧克力棒,
方法中有三个参数,第一个是小巧克力棒的个数,第二个是大巧克力棒的个数,第三个是规定的质量。
假设我们总在使用小巧克力棒之前使用大巧克力棒,返回要使用多少个小巧克力棒才能完成规定的质量,如果不能完成则返回-1;
(尽量不使用循环,太耗费时间,会导致后台验证超时)
思路:
1,先考虑不满足条件的情况排除,总砖不够的情况
2,小砖可以拼接大砖,但是大砖不可以劈开小砖
也就是说只要小砖不够,那么一定拼接不成功
3,考虑大砖够的情况,小砖需要多少
10.把今天讲过的其他案例再练习一遍
1.分析以下需求,并用代码实现:
(1)打印1-100之间的所有素数及个数
(2)每行输出5个满足条件的数,之间用空格分隔
(3)大于1的能被1和其本身整除的数叫素数
(4)如:2 3 5 7 11
答:参考答案
public static void main(String[] args) {
int count = 0;
for (int i = 2; i <= 100; i++) {
for (int j = 2; j <=i; j++) {
if(i%j==0 && i!=j) {
break;
}
if(i%j==0 && i==j) {
count++;
System.out.println(i);
}
}
}
System.out.println("素数有:"+count+"个");
}
}
2.分析以下需求,并用代码实现:
(1)珠穆朗玛峰高度为8848米,有一张足够大的纸,厚度为0.001米
(2)请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
答:参考答案
public class Test05 {
public static void main(String[] args) {
//1.计数器统计折纸的次数
int count = 0;
//2.为了方便计算将纸张的厚度和山的高度都转换成毫米
//定义纸张的厚度为1毫米
int paperHigh = 1;
//定义山的高度为8848000毫米
int mountainHigh = 8848000;
//3.只要纸张折叠后的厚度<山的高度,就循环
while(paperHigh<mountainHigh) {
paperHigh*=2;
count++;
}
//4.输出折叠后的纸张的总厚度和折叠次数
System.out.println("纸张折叠后的总厚度为:"+paperHigh);
System.out.println("纸张折叠的次数为:"+count);
}
}
3.分析以下需求,并用代码实现:
(1) 计算15+25+35+....+1005的和(分别使用for循环和while循环完成)
答:参考答案
public class Test07 {
public static void main(String[] args) {
int i = 15;
int sum = 0;
while(i<=1005) {
sum+=i;
i+=10;
}
System.out.println(sum);
}
}
4.分析以下需求,并用代码实现:
(1)打印倒直角三角形
*****
****
***
**
*
(2)打印等边三角形
*
* *
* * *
* * * *
* * * * *
答:参考答案
public class Test08 {
public static void main(String[] args) {
/*
*
* *
* * *
* * * *
* * * * *
*/
for(int i=1;i<=5;i++) {
for(int j= 5;j>=i;j--) {
System.out.print(" ");
}
for(int z=i;z>=1;z--) {
System.out.print("* ");
}
System.out.println();
}
System.out.println();
System.out.println("---------------------------");
System.out.println();
/*
*****
****
***
**
*
*/
for(int i=1;i<=5;i++) {
for(int j= 5;j>=i;j--) {
System.out.print("*");
}
System.out.println();
}
}
}
5.分析以下需求,并用代码实现(每个小需求都要封装成一个方法):
(1)求两个数据之和(整数和小数)
(2)判断两个数据是否相等(整数和小数)
(3)获取两个数中较大的值(整数和小数)
(4)打印m行n列的星形矩形
(5)打印nn乘法表
答:参考答案
public class Test09 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int sum = add(a,b);
System.out.println("sum="+sum);
System.out.println(isEquals(a, b));
System.out.println("max="+getMax(a, b));
double ad = 10.35;
double bd = 10.355;
double sumd = add(ad,bd);
System.out.println();
System.out.println("sum="+sumd);
System.out.println(isEquals(ad, bd));
System.out.println("max="+getMax(ad, bd));
print(5,5);
print99(5);
}
//1.求两个int类型数据的和
public static int add(int a,int b) {
int sum = a + b;
return sum;
}
//2.求两个double类型数据的和
public static double add(double a,double b) {
double sum = a + b;
return sum;
}
//3.判断两个int数据是否相等
public static boolean isEquals(int a,int b) { //isEquals 是否相等
return a == b;
}
//4.判断两个double数据是否相等
public static boolean isEquals(double a,double b) { //isEquals 是否相等
return a == b;
}
//5.求两个int类型数据的最大值
public static int getMax(int a,int b) {
return a > b ? a : b;
}
//6.求两个double类型数据的最大值
public static double getMax(double a,double b) {
return a > b ? a : b;
}
//7.打印m行n列的星形矩形
public static void print(int a,int b) {
for (int i = 1;i <= a ;i++ ) { //行数
for (int j = 1;j <= b ;j++ ) { //列数
System.out.print("*");
}
System.out.println();
}
}
//8.打印nn乘法表
public static void print99(int a) {
for (int i = 1;i <= a ;i++ ) { //行数
for (int j = 1;j <= i ;j++ ) { //列数
System.out.print(j + "*" + i + "=" + (i * j) + "\t" );
}
System.out.println();
}
}
}
6.类中有一个方法,方法名blackjack;
定义一个方法接收两个大于0的int类型值,返回两个数中不大于21且最接近21的数,
如果两个数都大于21,则返回0;
代码:
public class Itheima
{
public int blackjack(int a,int b){
if(a>21 && b>21){
return 0;
}
if(a>21 && b<21){
return b;
}else if(a<21 && b>21){
return a;
}else{
if(Math.abs(21-a)>Math.abs(21-b)){
return b;
}else{
return a;
}
}
}
}
7.定义一个方法接收3个int值,A B C,返回他们的总和。
然而,如果其中一个值与另一个值相同,则它们不参与求和。如果三个都相同则都不求和。
代码:
public class Itheima{
public int loneSum(int a,int b,int c){
if(a==b && b==c){
return 0;
}
if(a==b){
return c;
}else if(b==c){
return a;
}else if(a==c){
return b;
}else{
return a+b+c;
}
}
}
//扩展题目:有难度
8.我们想做一排砖(长度自己定),我们有一些小砖(每块1英寸)和大砖(每块5英寸),
如果用我们选择的砖块的数量能够拼接成功,则返回true;否则返回false,
例如:makeBricks(3, 1, 8) → true
(尽量不使用循环,太耗费时间,会导致后台验证超时)
思路:
1,定义一个方法,接收三个参数,第一个参数代表小砖,第二个参数代表大砖,第三个参数代表总寸数
2,大砖的寸数加小砖寸数能够刚好拼接成总寸数,就可以返回true
3,c/5 需要的大砖 c%5需要的小砖
代码:
public class Itheima{
public boolean makeBricks(int a,int b,int c){
return a+b*5>=c && a>=c%5;
}
}
//扩展题目:有难度
9.我们要做一包规定质量的巧克力,有每个一公斤和每个五公斤的巧克力棒,
方法中有三个参数,第一个是小巧克力棒的个数,第二个是大巧克力棒的个数,第三个是规定的质量。
假设我们总在使用小巧克力棒之前使用大巧克力棒,返回要使用多少个小巧克力棒才能完成规定的质量,如果不能完成则返回-1;
(尽量不使用循环,太耗费时间,会导致后台验证超时)
思路:
1,先考虑不满足条件的情况排除,总砖不够的情况
2,小砖可以拼接大砖,但是大砖不可以劈开小砖
也就是说只要小砖不够,那么一定拼接不成功
3,考虑大砖够的情况,小砖需要多少
代码:
public class Itheima{
public int makeChocolate(int a,int b,int c){
if(a+b*5<c){
return -1;
}
if(a<c%5){
return -1;
}
if(b*5>=c){//
return c%5;
}else{
return c-(b*5);//
}
}
}
|
|