Java入门----各周作业汇总

来源:互联网 发布:java web实训项目总结 编辑:程序博客网 时间:2024/05/16 16:01

下面是自己在上完网易云课堂翁恺老师的课后,写作业的记录,用于以后复习用.



第一周:用程序来做计算

题目内容:写一个将华氏温度转换成摄氏温度的程序。程序的输入是一个整数,表示华氏温度。输出对应的摄氏温度,也是一个整数。

自己写的代码:

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stub           Scanner in=new Scanner(System.in);           int Fa;           int x;           Fa=in.nextInt();           x=(int)((Fa-32)/(9.0/5));           System.out.println(x);      }}

第二周:判断

题目内容①:你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。

自己写的代码:

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stub   Scanner in=new Scanner(System.in);    int BJT;    int UTC;    BJT = in.nextInt();    if(BJT<2359)    {    if(BJT<800)    {    System.out.println(BJT-800+2400);    }    else    System.out.println(BJT-800);    }    else    System.out.println("输入格式错误!");    }}

题目内容②:程序要读入一个信号报告的数字,然后输出对应的含义

自己写的代码:

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stub   Scanner in=new Scanner(System.in);    int Re;    int Str;    int RS;    RS=in.nextInt();    Str=RS%10;    Re=RS/10;    if(RS>=11&&RS<=59)    {    switch(Str)    {    case 1:    System.out.print("Faint signals, barely perceptible,");    break;    case 2:    System.out.print("Very weak signals,");    break;    case 3:    System.out.print("Weak signals,");    break;    case 4:    System.out.print("Fair signals,");    break;    case 5:    System.out.print("Fairly good signals,");    break;    case 6:    System.out.print("Good signals,");    break;    case 7:    System.out.print("Moderately strong signals,");    break;    case 8:    System.out.print("Strong signals,");    break;    case 9:    System.out.print("Extremely strong signals,");    break;    }    switch(Re)    {    case 1:    System.out.println("unreadable.");    break;    case 2:    System.out.println("barely readable, occasional words distinguishable.");    break;    case 3:    System.out.println("readable with considerable difficulty.");    break;    case 4:    System.out.println("readable with practically no difficulty.");    break;    case 5:    System.out.println("perfectly readable.");    break;    }    }    else    System.out.println("输入无法识别!");}}

第三周:循环

题目内容①:程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stub   Scanner in=new Scanner(System.in);                    int number;    int x=0;    int y=0;    number=in.nextInt();    while(number!=-1)    {        if(number%2==0)    {    x++;    }    else    {    y++;    }    number=in.nextInt();    }    System.out.println("共有"+x+"个偶数,"+y+"个奇数");

题目内容②:

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stub   Scanner in=new Scanner(System.in);    int number;    int x=0;    int n=0;    int count=0;    int k=1;    number=in.nextInt();    while(number/10!=0)    {    x=x+1;    if(x==1)    {    k=1;    }    else    {    k=k*2;    }    n=number%10;            if((x+n)%2==0)    {    count=count+k;    }    number=number/10;    }    System.out.println(count);}}

第四周:循环控制

题目内容①:现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stub   Scanner in=new Scanner(System.in);int n;   int m;   int k=0;   int num=1;   int sum=0;   int count=0;   n=in.nextInt();   m=in.nextInt();   while(count<=m)   {   num++;   k=0;   for(int i=1;i<=num;i++)   {   if(num%i==0)   {   k++;   }      }   if(k==2)   {   count++;   if(count>=n&&count<=m)               {               sum=sum+num;               }   }                  }   System.out.println(sum);

题目内容②:你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stub   Scanner in=new Scanner(System.in);                   int number;   int num;   int n;   int a=1;   int k;   number=in.nextInt();//   判断是否为负数   if(number<0)   {   System.out.print("fu ");   number=(-1)*number;   }   k=number;//   记录整数位数,如果number是五位数,则a为10000   while(k>10)   {   k=k/10;   a=a*10;   }//   根据每位上的数字输出拼音   while(a!=0)   {   n=number/a;   switch(n)   {   case 1:       System.out.print("yi");       break;   case 2:   System.out.print("er");break;   case 3:   System.out.print("san");break;   case 4:   System.out.print("si");break;   case 5:   System.out.print("wu");break;   case 6:       System.out.print("liu");break;   case 7:   System.out.print("qi");break;   case 8:   System.out.print("ba");break;   case 9:   System.out.print("jiu");break;   case 0:   System.out.print("ling");   }   number=number-a*n;   a=a/10;//   判断是否为尾数   if(number!=0)   {   System.out.print(" ");   }      }


第五周:数组

题目内容①:你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。程序要处理的幂最大为100。

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stub Scanner in=new Scanner(System.in);//       定义二维数组   final int SIZE1=100;   final int SIZE2=3;   int [][] isExpress=new int[SIZE2][SIZE1];//         读入表达式1       int i=in.nextInt();       int max1=i;       if(i!=0)       {       do       {       isExpress[0][i]=in.nextInt();         i=in.nextInt();       }while(i!=0);       isExpress[0][i]=in.nextInt();       }       else       {       isExpress[0][i]=in.nextInt();       }//         读入表达式2       int j=in.nextInt();       int max2=j;       if(j!=0)       {       do       {       isExpress[1][j]=in.nextInt();         j=in.nextInt();       }while(j!=0);       isExpress[1][j]=in.nextInt();       }       else       {       isExpress[1][j]=in.nextInt();       }//                  取最高次幂max       int max=Math.max(max1,max2);//                  将数组前两行相加,结果放到第三行       for(int m=0;m<=max;m++)       {       isExpress[2][m]=isExpress[0][m]+isExpress[1][m];       }//                  输出数组第三行       for(int m=max;m>=0;m--)       {       if(isExpress[2][m]!=0&&m!=0&&m!=1)       {       System.out.print(isExpress[2][m]+"x"+m);       System.out.print("+");       }       if(m==1)       {       System.out.print(isExpress[2][m]+"x"+"+");       }       if(m==0)       {       System.out.print(isExpress[2][m]);       }       }
题目内容②:井字棋

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner in=new Scanner(System.in);//读取棋盘长度nint n;boolean isRight=false;int sum1=0;int sum2=0;int sum3=0;int sum4=0;n=in.nextInt();//判断n值是否符合标准,n[3,100]while(true){if(n<3||n>100){System.out.println("输入值不符合条件!");System.out.println("请重新输入:");n=in.nextInt();}else{break;}}final int SIZE=n;        int [][] XOXO=new int[SIZE][SIZE];//      读入棋盘内容        for(int i=0;i<SIZE;i++)        {        for(int j=0;j<SIZE;j++)        {        XOXO[i][j]=in.nextInt();        }        }        for(int i=0;i<SIZE;i++)        {        for(int j=0;j<SIZE;j++)        {//             情况一:左对角线相同        if(i==j)            {          sum1=sum1+ XOXO[i][j];            }//             情况二:右对角线相同            if(i+j==(n-1))            {           sum2=sum2+ XOXO[i][j];            }            sum3=sum3+XOXO[i][j];        }//         情况三:同行各列相同        if(sum3==SIZE)        {        break;        }        else if(sum3==0)        {       break;        }        else        {        sum3=(SIZE+1);        }        }        for(int j=0;j<SIZE;j++)        {        for(int i=0;i<SIZE;i++)        {       sum4=sum4+XOXO[i][j];        }//         情况四:同列各行相同        if(sum4==SIZE)       {       break;       }       else if(sum4==0)       {       break;       }       else       {       sum4=(SIZE+1);       }        }//     输出胜负结果        if(sum1==0||sum2==0||sum3==0||sum3==0)        {        System.out.println("O");        }        else if(sum1==SIZE||sum2==SIZE||sum3==SIZE||sum3==SIZE)        {         System.out.println("X");        }        else        {        System.out.println("NIL");        }}}
第六周:使用对象

题目内容①:你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格。

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner in=new Scanner(System.in);//    初始化String str1=new String("");    int getLength=0;    int end=0;    int start=0;//    输入一组字符串    str1=in.nextLine();//    从左至右遍历字符串    for(int i=0;i<str1.length();i++)    {    if(i!=0&&str1.charAt(i-1)==' '&&str1.charAt(i)!=' ')    {    start=i;    }    if((str1.charAt(i)==' '&&str1.charAt(i-1)!=' ')||str1.charAt(i)=='.')    {    end=i;    System.out.print(str1.substring(start,end).length()+" ");    }    }
题目内容②:你的程序要从中找出$GPRMC语句,计算校验和,找出其中校验正确并且字段2表示已定位的语句,从中计算出时间,换算成北京时间。一次数据中会包含多条$GPRMC语句,以最后一条语句得到的北京时间作为结果输出。

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner in=new Scanner(System.in);//          初始化String str2=new String("");String str=new String("");String str1=new String("");String isGPS=new String("");/*用户输入字符串*/int sum=0;/*校验和*/int sum1;/*字符串校验和*/char status;/*定位状态*/int i=0;/*游标*/int UTC=0;int BJT=0;//读入字符串isGPS=in.nextLine();while(!isGPS.equals("END"))        {        String ishead=isGPS.substring(0,isGPS.indexOf(","));if(ishead.equals("$GPRMC")){        str=isGPS;//    判断是否定位    str2=str.substring(i);    i=str2.indexOf(",");    i=i+1;    str2=str.substring(i);    int j=str2.indexOf(",");    status=str.charAt(i+j+1);//      判断是否校验和正确        i=str.indexOf("*");        sum=Integer.parseInt((str.substring(i+1)),16);/*将*号以后的字符转为16进制*/        str1=str.substring(1,i);        sum1=str1.charAt(0)^str1.charAt(1);        for(i=2;i<str1.length();i++)        {        sum1=sum1^str1.charAt(i);        }        sum1=sum1%65536;//      如果校验和正确且已定位,确定str为最终字符串        if(sum1==sum&&status=='A')        {        i=str.indexOf(",");    UTC=Integer.parseInt(str.substring(i+1,i+7));        }            }isGPS=in.nextLine();        }//BJT时间相当于UTC加上8if((UTC/10000)<=16){BJT=UTC+80000;}else{BJT=UTC+80000-240000;}i=1000000;do{i=i/100;System.out.print(BJT/i);if(i!=1){System.out.print(":");}BJT=BJT%i;}while(i!=1);        }}
第七周:循环

题目内容①:分解质因数

import java.util.Scanner;public class Main {public static boolean isPrime(int m){int count=0;for(int i=2;i<m;i++){if(m%i==0){count=0;break;}count++;}if(count!=0||m==2){return true;}else{return false;}}public static void main(String[] args) {// TODO Auto-generated method stubScanner in=new Scanner(System.in);int number;int isJudge;int j=0;    int k=0;int [] Prime=new int[100];number=in.nextInt();if(number<=100000&&number>=2){for(int i=2;i<Prime.length;i++){if(isPrime(i)){Prime[j]=i;j++;}}if(isPrime(number)){System.out.println("n="+number);}else{System.out.print(number+"=");do            {            isJudge=number%Prime[k];            if(isJudge==0)            {            System.out.print(Prime[k]+"x");            if(isPrime(number/Prime[k]))                    {                System.out.print(number/Prime[k]);                break;                    }                else                {                number=number/Prime[k];                }            }            else            {            k++;            }            }while(k<Prime.length);     }}}}
题目内容②:你要写一个程序,读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数。

import java.util.Scanner;public class Main {public static boolean isPerfect(int m){int sum=0;for(int i=1;i<m;i++){if(m%i==0){sum=sum+i;}}if(sum==m){return true;}else{return false;}}public static void main(String[] args) {// TODO Auto-generated method stubScanner in=new Scanner(System.in);int m;int n;int j=0;n=in.nextInt();m=in.nextInt();for(int i=n;i<=m;i++){if(isPerfect(i)){if(j>0){System.out.print(" "+i);}else{System.out.print(i);}j++;}}}}









0 0
原创粉丝点击