Java笔记04

Java笔记04:

自学笔记1


内容:

  1. Java数组(基于黑马程序员视频)
  2. 编程练习
  3. 编程时遇到的问题及解决方法

1.Java数组

1.1
花了一天时间看完黑马教程关于数组的视频,本来打算继续用菜鸟教程的C 语言经典100例练习,但是好像没看到专门的题,就暂时卡住了,再加上我快开学了,想着多玩几天,就一直搁置着,打算到学校再写,课好难,为了期末不挂科,学校的课程优先,有空的时候再来续写


2.编程练习

2.1 输入某年某月某日,判断这一天是这一年的第几天?

这题是上篇文章的2.4,原理没什么区别,用数组可以少打代码
2.1
代码如下

//输入某年某月某日,判断这一天是这一年的第几天?
import java.util.Scanner;
public class CDemo4{
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入分别输入要查询的年月日:");
		System.out.println("请输入要查询的年份:");
		boolean flag=false;
		int year=sc.nextInt();
		System.out.println("请输入要查询的月份:");
		int mouth=sc.nextInt();
		System.out.println("请输入要查询的日期:");
		int day=sc.nextInt();
		int sum =0,endday=0;
		if((year % 4==0 && year % 100 !=0 )||(year % 400 == 0)){//判断闰年
			flag=true;
		}
		int [] moon=new int [] {31,28,31,30,31,30,31,31,30,31,30,31};//口诀:一三五七八十腊(12月),三十一天永不差;四六九冬(11月)三十日;平年二月二十八,闰年二月把一加
		for (int i=0;i<mouth-1;i++){
			sum+=moon[i];
		}
		if (flag && mouth>2){//如果是闰年且输入的月份>2,那么在此基础上+1,反之则正常累加
			endday=sum+day+1;
		}else{
			endday=sum+day;
		}
		System.out.println("是第 "+endday+" 天");
	}
}

2.2 一维数组的动态和(题目来源-力扣-新手村-第一题:一维数组的动态和)

2.1
1.从示例可以看出来,nums的元素并不能确定,用户随意输入,那就不能直接定义长度
2.从公式和示例可以知道,计算方式就是元素累加,新生成的第二个元素是第一个元素+原来的第二个元素,以此类推,第一个元素没地方加,保持不变,如果从第一个元素开始遍历的话,会让程序复杂,那索性从第二个元素开始计算,省的多打
3.输出也是数组,那就需要定义一个相同类型长度的数组
4.那基本思路就是:先定义一个数组sum,用来存放新生成的元素值,把第一个元素赋值,从第二个元素开始遍历,累加,最后输出数组sum即可
2.2

class Solution {
    public int[] runningSum(int[] nums) {
        int [] sum=new int [nums.length];
        sum[0]=nums[0];
        for (int i=1;i<nums.length;i++){
            sum[i]=sum[i-1]+nums[i];
        }
        return sum;
    }
}

2.3

2.4
我还发现有题目解析和视频讲解,好贴心

2.3 Fizz Buzz (题目来源-力扣-新手村-第三题:Fizz Buzz)

2.5
1.首先用户输入n,我需要从1到n遍历,如果是3的倍数,就是Fizz,如果是5的倍数就是Buzz,如果是3和5的倍数,那么显示FizzBuzz
2.将遍历判断之后的结果存放到字符串数组中,输出即可
2.6
虽然这题原理就这样,不过,我还是没成功
2.7
不过做这道题的初衷是为了练习数组,自己新建文件重新编译运行,查看结果,数据上没毛病,代码就不贴了,这边建议直接点击正确答案,学习。


3.编程时遇到的问题及解决方法

1.做2.3的时候,不知道int怎么转String型,然后就百度搜到了Java中数字转成字符串的方法,我选了第三种方法


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值