java题不会,求助大佬

1.求和S=1^2-3^2+5^2-7^2+9^2-...(共50项,直接在main方法中写程序)。

2.写一个方法public static int[] parity(int[] a),对原数组a的每个元素计算其奇偶性0代表偶数1代表奇数,把这些0、1填到一个新数组b里面,最后返回数组b。在main方法中调用测试该方法。
举例:a ={4,5,9,2,8,1},则b ={0,1,1,0,0,1}

3.写一个方法public static int invert(int n),将整数n的数字顺序颠倒并返回这个新数,比如786变成687,49716变成61794,然后在main方法中调用测试该方法。(注:不能调用字符串方法做)

4.写一个日期类Date,有year、month和day三个数据域,都是int型,要求:
(1)数据域封装,写出它们的访问器和修改器;
(2)两个构造方法,一个是无参数默认的日期是1900.01.01,另一个是带参数的;
(3)写一个run方法,增加一天;
(4)写一个output方法,以格式“今天是XXXX年XX月XX日”的格式输出日期。
最后,在main方法中测试该类,创建一个对象ddd,初始值为2018年7月28日,用方法rum运行100天,然后用output方法输出第100天。

你好,提问者:

若解决了你的问题请采纳,若有疑问请追问,谢谢!

第一题:
package com.zyx.cn.baidu_test;
public class HundredUnevenNumber {
public static void main(String[] args) {
int cont =0;
int number =0;
//查询一百以内的奇数:不能被2整除
for( int i=1 ; i<=100 ; i++ ){
            if(i%2 != 0){   //不能被2整除
             cont++;
                if(cont%2 !=0){
            number = number + i*i;
                }else{
                  number = number - i*i;
                }
            }
        }
System.out.println("共计:"+cont);
System.out.println("和:"+number);
}
}

结果:
共计:50
和:-5000

第二题:
public class ArrayCount {
public static void main(String[] args) {
int[] a ={4,5,9,2,8,1};
a = parity(a);
show(a);
}
public static int[] parity(int[] a){
//遍历数组a
for (int i = 0; i < a.length; i++) {
if(a[i] % 2 !=0){//奇数
a[i]=1;
}else{
a[i]=0;
}

}
return a;
}
public static void show(int[] a){
System.out.print("b = {");
for (int i = 0; i < a.length; i++) {
if(i == a.length-1){
System.out.print(a[i]);
}else{
System.out.print(a[i]+",");
}
}
System.out.println("}");
}
}

结果:
b = {0,1,1,0,0,1}

第三题:
package com.zyx.cn.baidu_test.day1;
/**
 * 将整数n的数字顺序颠倒并返回这个新数,比如786变成687,49716变成61794
 * @author yltd
 *
 */
public class Number_FanZhuan {
public static void main(String[] args) {
invert(786);
invert(49716);
}
public static int invert(int n){
String str = n+"";
String newStr = "";
char[] ch = new char[str.length()];
for (int i = 0; i < str.length(); i++) {
String s=  str.substring(i, i+1);
ch[i] = s.charAt(0);
}
for (int i = ch.length-1; i >=0 ; i--) {
newStr = newStr+ch[i];
}
n = Integer.parseInt(newStr);
System.out.println(n);
return n;
}
}
结果:
687
61794

第4题:
package com.zyx.cn.baidu_test.day1;
/**
 * 写一个日期类Date,有year、month和day三个数据域,都是int型,要求:
(1)数据域封装,写出它们的访问器和修改器;
(2)两个构造方法,一个是无参数默认的日期是1900.01.01,另一个是带参数的;
(3)写一个run方法,增加一天;
(4)写一个output方法,以格式“今天是XXXX年XX月XX日”的格式输出日期。
最后,在main方法中测试该类,创建一个对象ddd,初始值为2018年7月28日,用方法rum运行100天,然后用output方法输出第100天。
 * @author yltd
 *
 */
public class DateTest {
public static void main(String[] args) {
NewDate ddd =new NewDate(2018,7,28);
NewDate aaa = ddd.run(ddd,100);
aaa.output(aaa);
}
}
class NewDate{
private int year;
private int month;
private int day;
// getXXX/setXXX
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
//无参构造方法:1900.01.01
NewDate(){
setYear(1900);
setMonth(01);
setDay(01);
System.out.println(getYear()+"."+getMonth()+"."+getDay());
}
//带参构造方法
NewDate(int year,int month,int day){
setYear(year);
setMonth(month);
setDay(day);
System.out.println(getYear()+"."+getMonth()+"."+getDay());
}
//加number天
NewDate run(NewDate date,int number){
int year =date.getYear();
int month=date.getMonth();
int day=date.getDay();

for (int i = 0; i < number; i++) {
if(year%4 ==0){//闰年
if(month ==2){//2月
if(day<28){
day = day+1;
}else if(day==28){
day =1;
month = month+1;
}
}
}else{//平年
if(month ==2){//2月
if(day<29){
day = day+1;
}else if(day==29){
day =1;
month = month+1;
}
}
}
//大小月天数
if(month ==1||month ==3||month ==5||month ==7||month ==8||month ==10||month ==12){//31天的月份
if(day<31){
day = day+1;
}else if(day ==31){
day =1;
if(month ==12){//如果是12月的最后一天
year =year+1;
month =1;
}else{
month = month+1;
}
}
}else{//30天的月份
if(day<30){
day = day+1;
}else if(day ==30){
day =1;
month = month+1;
}
}
}
System.out.println(year+"==="+month+"==="+day);
NewDate newDate =new NewDate(year,month,day);
return newDate;
}
//输出
 void output(NewDate newDate) {
System.out.println("今天是"+newDate.getYear()+"年"+newDate.getMonth()+"月"+newDate.getDay()+"日");
}
}
结果:
2018.7.28
2018===11===5
2018.11.5
今天是2018年11月5日

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-11-26
自己找规律 没有规律程序是学不出来的;
第一个:提示你2的n次密追问

这第一题我会。。就是没标准答案参考对比自己的

第2个回答  2018-11-26
代码的话自己敲了不会再问会比较好,你直接伸手跟人要写好的代码也不是你脑子里的东西,下次再出类似的题你还是不会。
自己先写,不会了再问。别做伸手党追问

大佬,234怎么做啊,我自学java,无人指点,求代码,确实是敲了也不会

追答

像第二题的话你可以新建一个数组b,然后循环判断数组a里是奇数还是偶数,把01存进数组b不就好了。
第三题的话你一样用数组啊,方法里把数组倒着输出再返回不就好了。尽量自己写,卡在哪里了,就在那个不懂得地方问,然后qq上有java群,可以申请进去,不会得在问一下都是可以得。

相似回答