下面是自己在上完网易云课堂翁恺老师的课后,写作业的记录,用于以后复习用.
第一周:用程序来做计算
题目内容:写一个将华氏温度转换成摄氏温度的程序。程序的输入是一个整数,表示华氏温度。输出对应的摄氏温度,也是一个整数。
自己写的代码:
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
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);
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 stub
Scanner in=new Scanner(System.in);
// 读取棋盘长度n
int 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
第六周:使用对象
题目内容①:你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner 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
题目内容②:
你的程序要从中找出$GPRMC语句,计算校验和,找出其中校验正确并且字段2表示已定位的语句,从中计算出时间,换算成北京时间。一次数据中会包含多条$GPRMC语句,以最后一条语句得到的北京时间作为结果输出。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner 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
第七周:循环
题目内容①:分解质因数
import java.util.Scanner;
public class Main {
public static boolean isPrime(int m)
{
int count=0;
for(int i=2;i=2)
{
for(int i=2;i
题目内容②:
你要写一个程序,读入两个正整数n和m(1<=n
import java.util.Scanner;
public class Main {
public static boolean isPerfect(int m)
{
int sum=0;
for(int i=1;i0)
{
System.out.print(" "+i);
}
else
{
System.out.print(i);
}
j++;
}
}
}
}