java题册.docx_第1页
java题册.docx_第2页
java题册.docx_第3页
java题册.docx_第4页
java题册.docx_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档E.面积最大的直角三角形(作业3)Description小明家里有很多长度不一的木棍,他想用这些木棍中的三根组成一个直角三角形。可能有多种组合结果,但小明想要一个面积最大的直角三角形。Input若干组数据,每组数据由两行组成,第1行表示木棍的数量,第2行表示每根木棍的长度。木棍最多不超过100个。长度都是整数。Output面积最大的直角三角形的面积,保留两位小数。如果所给的数据不能组成直角三角形,则输出“NONE”。Sample Input44 1 2 356 5 3 4 266 3 5 4 10 821 1Sample OutputNONE6.0024.00NONEimport java.util.Scanner;class Trangleint a;int n;Trangle(int m,int b)n=m;a=b;void are()int i,j,k,t,p;float mj=0;p=0;for (i=0;in;i+)for(j=0;jn;j+)t=ai*ai+aj*aj;for (k=0;kmj)mj=ai*aj/2.0f;p+;if(p=0) System.out.printf(NONEn);else System.out.printf(%.2fn,mj);public class Mugun public static void main(String args)int n;Scanner reader=new Scanner(System.in);while(reader.hasNext()n=reader.nextInt();int b;b=new intn;int i;for (i=0;in;i+)bi=reader.nextInt();Trangle s;s=new Trangle(n,b);s.are(); F.圆类(作业3)Description设计一个圆类,圆类中设置必要的数据成员,使之能够表示圆的大小和位置;类中设置必要的成员函数,能够求圆的面积和周长;设计一个成员函数,能够将圆从一个位置移动到另一个位置。Input多组数据。每组数据包括圆的半径和圆心坐标,以及移动的增量。半径是浮点数,圆心坐标和移动增量都是整型数。Output圆的面积和周长(精确到小数点后两位),及移动后的圆的位置(整型)。Sample Input10 10 10 15 1520 20 30 16 16Sample Outputarea:314.16 perimeter:62.83 after moved:25 25area:1256.64 perimeter:125.66 after moved:36 46import java.util.Scanner;class Circlefloat r;int x,y;Circle (float a,int b,int c)r=a;x=b;y=c;float area()return r*r*3.1415926f;float perimeter()return 2.0f*r*3.1415926f;void move(int d1,int d2)x=x+d1;y=y+d2;int getx()return x;int gety()return y;public class Main public static void main(String args)Scanner reader=new Scanner(System.in);while(reader.hasNext()float a;int b,c,d,e;a=reader.nextFloat();b=reader.nextInt();c=reader.nextInt();d=reader.nextInt();e=reader.nextInt();Circle yuan;yuan=new Circle(a,b,c);yuan.move(d,e);System.out.printf(area:%.2f perimeter:%.2f after moved:%d %dn, yuan.area(),yuan.perimeter(),yuan.getx(),yuan.gety();G.游戏I(作业4)Description有m个小孩围成一圈。第一个小孩从1开始报数,当报到n时的小孩出圈。下一个小孩又从1开始报数,当又报到n时又出圈。重复这个过程,当圈中只剩一个小孩时,这个小孩是原队列中的第几位?Input有多组数据,每组数据由两个整型数组成。第1个整型数表示小孩的总数m,第2个整型数表示出圈小孩的报数n。小孩数不超过100个。Output圈中最后剩的一个小孩在开始的圈中是第几位?Sample Input3 13 210 13Sample Output335import java.util.Scanner;public class Youxi public static void main(String args)int m,n;Scanner reader=new Scanner(System.in);while(reader.hasNextInt()m=reader.nextInt();n=reader.nextInt();Child.circle(m,n);class Childpublic static void circle(int m,int n)int i,l=0;for(i=2;i=m;i+)l=(l+n)%i;l+;System.out.println(l);H.游戏II(作业4)Description10个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的小孩同时将手中的糖果分一半给左边的小孩;糖块为奇数的人可向老师要一块。问经过这样几次后,大家手中的糖的块数将一样多?每人各有多少块糖?Input多组数据,每组数据10个数,分别为游戏开始时,每个小孩手中的糖果数。Output游戏结束后,游戏的次数及每人的中的糖果数。Sample Input10 2 8 22 16 4 10 6 14 20Sample Output17 18import java.util.Scanner;public class Main public static void main(String args) Scanner in = new Scanner(System.in);int a = new int10;while(in.hasNext()int cnt = 1;for (int i = 0; i 10; i+)ai = in.nextInt();Game G = new Game(a);if(G.check() = 1) System.out.printf(0 %dn,G.KID0);else while(true)G.Play();cnt+;if(G.check() = 1) break;System.out.printf(%d %dn,cnt,G.KID0);class Gameint KID = new int10;int temp = new int10;Game(int kid)for(int i = 0; i 10; i+)KIDi = kidi;tempi = KIDi;int check()int flag = 1;for (int i = 0; i 9; i+)if(KIDi != KIDi+1)flag = 0;break;return flag;void Play()for (int i = 0; i 10; i+)tempi /= 2;for (int i = 0; i 10; i+)if(i != 9) tempi+1 += KIDi/2;/tempi /= 2;else temp0 += KID9/2;/temp9 /= 2;for (int i = 0; i 10; i+)if(tempi % 2 = 1) tempi+;for (int i = 0; i 10; i+)KIDi = tempi;/System.out.println(1);I.魔方矩阵(作业5)Time Limit: 1000 MS Memory Limit: 32768 KTotal Submit: 139 (57 users) Total Accepted: 61 (57 users) Special Judge: NoDescription有一个n*n矩阵,其各个元素的值由1到n*n自然数组成。将这n*n个自然数放到n*n矩阵中,使得矩阵的每一行元素之和、每一列元素之和、主对角线元素之和及副对角线元素之和都相等。n是奇数,最大不超过99。如下的矩阵就是一个魔方阵:8 1 63 5 74 9 2往魔方阵中放数的规则如下:(1) 将1放在第0行中间一列;(2) 从2开始直到nn止各数依次按下列规则存放:按 45方向向右上行走(每一个数存放的行比前一个数的行数减1,列数加1)(3) 如果行列范围超出矩阵范围,则回绕。例如1在第0行,则2应放在最下一行,列数同样减1;(4) 如果按上面规则确定的位置上已有数,或上一个数是第0行第n-1列时,则把下一个数放在上一个数的下面。Input若干组数据,每组数据由一个奇数组成。Output对于每一个奇数,输出一个魔方矩阵。同一行中两个数用一个空格分隔,每一行最后一个数后有一个空格。Sample Input37Sample Output8 1 63 5 74 9 230 39 48 1 10 19 2838 47 7 9 18 27 2946 6 8 17 26 35 375 14 16 25 34 36 4513 15 24 33 42 44 421 23 32 41 43 3 1222 31 40 49 2 11 20import java.util.Scanner;public class Main public static void main(String args) Scanner in = new Scanner(System.in);int n;while(in.hasNext()n = in.nextInt();Matrix M = new Matrix(n);M.InitMatrix();M.MagicMatrix();M.ShowMatrix();class Matrixint N;int a;Matrix(int n)N = n;a = new intNN;void InitMatrix()for(int i = 0; i N; i+)for (int j = 0; j N; j+)aij = 0;int check()for (int i = 0; i N; i+)for (int j = 0; j N; j+)if(aij = 0) return 0;return 1;int Magic_i(int i,int j)while(aij != 0)i+;if(i = N) i -= N;return i;int Change_i(int i)i-;if(i = -1) i += N;return i;int Change_j(int j)j+;if(j = N) j -= N;return j;void ShowMatrix()for (int i = 0; i N; i+)for (int j = 0; j N; j+)System.out.printf(%d ,aij);System.out.println();void MagicMatrix()a0N/2 = 1;int i = 0;int j = N/2;int cnt = 2;while(check() = 0)if(i = 0 & j = N-1)i+;aij = cnt+;else if(aChange_i(i)Change_j(j) != 0)i = Magic_i(i,j);else i = Change_i(i);j = Change_j(j);aij = cnt+;J.算式(作业5)Time Limit: 1000 MSMemory Limit: 32768 KTotal Submit: 171 (59 users) Total Accepted: 61 (59 users) Special Judge: No Description求出以下形式的算式,每个算式中有九个数位,正好用尽1到9这九个数字。 += Input无。 Output如Script中所描述的算式,输出时按第1个3位数由小到大输出。 Sample Input无 Sample Output124+659=783 125+739=864 386+541=927 Total of n Expressions. (注:n是等式个数,输出时应输出实际个数)import java.util.Scanner;public class Main public static void main(String args) Scanner in = new Scanner(System.in);Num N = new Num();N.Play();class Numint n = 0;int a = new int3;int b = new int3;int c = new int3;void xsort(int s)int t;for (int i = 0; i 3; i+)for (int j = 0; j sj+1)t = sj;sj = sj+1;sj+1 = t;int check_1(int a,int b,int c)if(a = b|b = c|a = c) return 0;return 1;int check_2(int a,int b)for (int k = 0; k 3; k+)for (int p = 0; p 3; p+)if(ak = bp) return 0;return 1;int check_3()int N = new int11;for (int k = 0; k = 10; k+)Nk = 0;for (int k = 0; k 3; k+)Nak+;for (int k = 0; k 3; k+)Nbk+;for (int k = 0; k 3; k+)Nck+;for (int k = 1; k = 9; k+)if(Nk = 0) return 0;return 1;void show(int a,int b,int c)System.out.printf(%d+%d=%dn,a,b,c);n+;void show_last()System.out.printf(Total of %d Expressions.n,n);void Play()for (int i = 123; i = 386; i+)a0 = i%10;a1 = (i/10)%10;a2 = i/100;if(check_1(a0,a1,a2) = 0) continue;xsort(a);for (int j = i+1; j 999) continue;c0 = sum%10;c1 = (sum/10)%10;c2 = sum/100;if(check_1(c0,c1,c2) = 0) continue;xsort(c);if(check_3() = 0) continue;show(i,j,sum);show_last();K.动物声音模拟器(作业6)Time Limit: 1000 MSMemory Limit: 32768 KTotal Submit: 142 (58 users) Total Accepted: 65 (58 users) Special Judge: No Description设计一个动物声音模拟器模仿动物的叫声。类图如下: Animal类中的方法playSound模拟动物的叫声,但输出时要求先给出名字。 程序中任何地方不允许直接用Dog或Cat的对象调用cry()方法和getAnimalName()方法。(P143 4题) Input若干组数据,每组数据由1个整型数和1个字符串组成。整型数表示动物类型:0猫、1狗;字符串表示动物的名字。 Output先输出动物的名字。如果是猫,则输出“Miao,Miao”;如果是狗,则输出“Wang,Wang”. Sample Input1 Eunice 0 Elma Sample OutputEunice:Wang,Wang. Elma:Miao,Miao. import java.util.Scanner;public class Main public static void main(String args) / TODO Auto-generated method stubScanner in = new Scanner(System.in);int m;while(in.hasNext()m = in.nextInt();String n = in.next();Simulator S = new Simulator();if(m = 0) S.PlaySound(new Cat(n);else S.PlaySound(new Dog(n);abstract class Animalabstract void cry();abstract void getAnimalName();class SimulatorAnimal animal;void PlaySound(Animal animal)this.animal = animal;animal.getAnimalName();animal.cry();class Dog extends AnimalString name;Dog(String n)name = n;void cry()System.out.println(:Wang,Wang.);void getAnimalName()System.out.printf(%s,name);class Cat extends AnimalString name;Cat(String n)name = n;void cry()System.out.println(:Miao,Miao.);void getAnimalName()System.out.printf(%s,name);L.计算三角形的面积和周长(作业6)Time Limit: 1000 MSMemory Limit: 32768 KTotal Submit: 102 (56 users) Total Accepted: 57 (55 users) Special Judge: No Description设计一个点类和一个三角形类。三角形的三个顶点用三个点类对象的指针表示,能计算三角形的面积。如果三点位于同一直线,则输出“a line”。 Input有多组数据,每组数据由6个浮点数组成,分别表示3个点的x和y坐标。 Output三角形面积。如果3点共线,则输出“a line”。面积保留两位小数。 Sample Input87 12 34 76 23 29 11 22 33 44 55 66 Sample Output1597.50 a line import java.util.Scanner;import java.text.DecimalFormat;public class Main public static void main(String args) / TODO Auto-generated method stubScanner in = new Scanner(System.in);while(in.hasNext()double a,b,c,d,e,f;a = in.nextDouble();b = in.nextDouble();c = in.nextDouble();d = in.nextDouble();e = in.nextDouble();f = in.nextDouble();Point A = new Point(a,b);Point B = new Point(c,d);Point C = new Point(e,f);Triangle T = new Triangle(A,B,C);T.GetS();T.show();class Pointdouble x,y;Point();Point(double xx,double yy)x = xx;y = yy;class TrianglePoint A;Point B;Point C;double l1,l2,l3,S;double distance(Point a,Point b)return Math.sqrt(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);Triangle(Point a,Point b,Point c)A = a;B = b;C = c;l1 = distance(A,B);l2 = distance(B,C);l3 = distance(A,C);void GetS()S = Math.sqrt(l1+l2+l3)/2)*(l1+l2+l3)/2)-l1)*(l1+l2+l3)/2)-l2)*(l1+l2+l3)/2)-l3);void show()if(S = 0) System.out.printf(a linen);else System.out.printf(%.2fn,S);M.异常处理(作业7)Time Limit: 1000 MSMemory Limit: 32768 KTotal Submit: 120 (60 users) Total Accepted: 63 (59 users) Special Judge: No Description设计一个自然数类,该类的对象可以表示一个自然数,可以判断该数是否是素数。如果所给的数为0或负数,则在构造自然数类的对象时进行异常处理并显示“not a nature!”;如果所给的数是一个自然数,则正常构造自然数对象并给出是否是素数的结果。 Input若干组数据,每组数据只有一个整型数。 Output如果所给的数是自然数,则构造自然数类的对象,并判断该自然数是否是素数,如果是素数,则输出“a prime”,否则输出“not a prime”;如果所给的数不是自然数(0或负整数),则构造自然数对象时进行异常处理,并输出“not a nature”。 Sample Input10 -10 11 8374 Sample Outputnot a prime not a nature a prime not a primeimport java.util.Scanner;class nature int n; public nature (int n) throws natureException if(n=0) throw new natureException(not a nature); this.n=n; public boolean sushu() int l=0; for(int i=2;i 0)acnt+ = n%10;n /= 10;if(cnt % 2 = 0)for (int i = 0; i cnt/2; i+)if(ai != acnt-i-1)f = 0;elsefor (int i = 0; i cnt/2; i+)if(ai != acnt-i-1)f = 0;return f;void Play()for (int i = 1; ; i+)if(check(l1+i) = 1)l2 = l1+i;break;v = (l2-l1)/t;System.out.printf(%d %dn,v,l2);Q.打鱼还是晒网(实验4-1)Time Limit: 1000 MSMemory Limit: 32768 KTotal Submit: 130 (52 users) Total Accepted: 58 (50 users) Special Judge: No Description中国有句俗语叫“三天打鱼两天晒网”。某人从2000年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。 Input有多组数据,每组数据由3个整型数组成,分别表示年、月和日。 Output如果是打渔,输出“fish”;否则,输出“rest”。 Sample Input2000 1 1 2000 1 5 2005 9 8 2010 12 3 Sample Outputfish rest fish restimport java.util.Calendar;import java.util.Date;import java.util.Scanner;public class Main public static void main(String args) / TODO Auto-generated method stubint y,m,d;Scanner in = new Scanner(System.in);while(in.hasNext()y = in.nextInt();m = in.nextInt();d = in.nextInt();Dates D = new Dates(y,m,d);D.show();class DatesCalendar calendar = Calendar.getInstance();long time1,time2;long f = 0,mod;/calendar.setTime(new Date();Dates(int Y,int M,int D)calendar.setTime(new Date();calendar.set(2000,0,1);time1 = calendar.getTimeInMillis();calendar.set(Y,M-1,D);time2 = calendar.getTimeInMillis();mod = (time2-time1)/(1000*60*60*24)%5;void show()if(mod = 2) System.out.println(fish);else System.out.println(rest);R.分数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论