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
- Java入门----各周作业汇总
- 【MOOC】程序设计入门-C 语言 作业汇总
- 程序设计入门——Java入门作业(第三周)
- JAVA入门知识汇总
- Java+Opencv 入门汇总
- Java入门学习,作业1
- 程序设计入门—Java语言_第三周编程作业
- 程序设计入门—Java语言_第二周编程作业
- 程序设计入门——Java作业
- java学习入门知识点汇总1
- Java入门学习进阶知识点汇总
- Java第二周作业
- Java第三周作业
- Java第五周作业
- Java第六周作业
- 第二周java作业
- 第三周java作业
- 第五周java作业
- Autolayout - 2 (sizeClass)
- 遇到的几个算法题
- C++ STL容器的学习使用(vector、queue、list、set、map)
- 一根560亿美元的“小草”:任正非要华为向美国学习开放
- Autolayout - 3
- Java入门----各周作业汇总
- gem5的安装与使用
- Eclipse常用的高效插件
- linux 配置 ip地址
- context是如何泄漏的 - Handlers和内部类
- NodeJS写日志_Log4js使用详解+常见困难的解决
- iOS 常见 Crash 及解决方案
- lucene 近实时搜索实例
- hive压缩之小文件合并