Java 三道难题,希望大神详细解答。拜托拜托 50
1、设n是一任意自然数。若将n的各位数字反向排列所得自然数与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数...
1、设n是一任意自然数。若将n的各位数字反向排列所得自然数与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。在TestB1类文件中编写程序,要求如下:
(1)输入一个0-1000000之间的整数,如果不在这个范围之内提示输入错误,显示出错信息"Input Error!",程序结束。
(2)判断该整数是否回文数,如果是显示"palindrome number",否则显示"not palindrome number"。
2、在TestB2类文件中编写程序,要求如下:
(1)创建一个有50个元素的整型数组b,通过循环语句给数组b中的所有元素赋值,其取值范围是在[0,100]之间的随机整数,并以每行10个元素格式输出。
(2)输出该数组中所有元素的平均值、最大值、最小值。
(3)分别输出输出该数组中[0,60)、[60,70)、[70,80)、[80,90)、[90,100]各区间的元素个数。
3、在TestB3类文件中编写程序,要求如下:
(1)根据下面的要求实现学生类Student:
Student类的成员变量:
id (私有, 字符串型) ; //存放学号
name (私有,字符串型) ; //存放姓名
Student类的方法成员
Student(String i,String n) 构造方法,创建Student对象时将学号初始化为i,将姓名初始化为n
String getId() 获得学生的学号
String getName() 获得学生的姓名
void disp() 将学生的学号、姓名输出
(2)继承上题中的Student类,派生本科生类Undergraduate,要求如下:
Undergraduate类的成员变量:
maths (私有,整型) ; //存放数学成绩
computer (私有,整型) ; //存放计算机成绩
Undergraduate类的方法成员:
Undergraduate(String i,String n,int m,int c)构造方法,创建Undergraduate对象时将学号初始化为i,将姓名初始化为n,将数学成绩初始化为m,将计算机成绩初始化为c
int getMaths() 获得数学成绩
int getComputer() 获得计算机成绩
void disp() 将本科生的学号、姓名、数学成绩、计算机成绩及成绩等级输出
(3)利用类Undergraduate创建一个学号为101,姓名为张三,数学成绩为85,计算机成绩为90的Undergraduate对象,并调用disp方法将该对象的学号、姓名、数学成绩、计算机成绩输出。 展开
(1)输入一个0-1000000之间的整数,如果不在这个范围之内提示输入错误,显示出错信息"Input Error!",程序结束。
(2)判断该整数是否回文数,如果是显示"palindrome number",否则显示"not palindrome number"。
2、在TestB2类文件中编写程序,要求如下:
(1)创建一个有50个元素的整型数组b,通过循环语句给数组b中的所有元素赋值,其取值范围是在[0,100]之间的随机整数,并以每行10个元素格式输出。
(2)输出该数组中所有元素的平均值、最大值、最小值。
(3)分别输出输出该数组中[0,60)、[60,70)、[70,80)、[80,90)、[90,100]各区间的元素个数。
3、在TestB3类文件中编写程序,要求如下:
(1)根据下面的要求实现学生类Student:
Student类的成员变量:
id (私有, 字符串型) ; //存放学号
name (私有,字符串型) ; //存放姓名
Student类的方法成员
Student(String i,String n) 构造方法,创建Student对象时将学号初始化为i,将姓名初始化为n
String getId() 获得学生的学号
String getName() 获得学生的姓名
void disp() 将学生的学号、姓名输出
(2)继承上题中的Student类,派生本科生类Undergraduate,要求如下:
Undergraduate类的成员变量:
maths (私有,整型) ; //存放数学成绩
computer (私有,整型) ; //存放计算机成绩
Undergraduate类的方法成员:
Undergraduate(String i,String n,int m,int c)构造方法,创建Undergraduate对象时将学号初始化为i,将姓名初始化为n,将数学成绩初始化为m,将计算机成绩初始化为c
int getMaths() 获得数学成绩
int getComputer() 获得计算机成绩
void disp() 将本科生的学号、姓名、数学成绩、计算机成绩及成绩等级输出
(3)利用类Undergraduate创建一个学号为101,姓名为张三,数学成绩为85,计算机成绩为90的Undergraduate对象,并调用disp方法将该对象的学号、姓名、数学成绩、计算机成绩输出。 展开
3个回答
展开全部
三个题目一起贴代码太多了, 百度不允许贴这么多代码。 只能贴前面2题的代码
第一题:
import java.util.Scanner;
/**
* @author young
* @Description: TODO
* @date 2016年5月31日下午5:52:11
*/
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Please input the number: ");
int num = sc.nextInt();
if (num < 0 || num > 1000000) {
System.out.println("Input Error");
System.exit(0);
} else {
String word = String.valueOf(num);
int i = word.length();// 获取长度
int j = 0;
while (j <= (i / 2) - 1 && word.charAt(j) == word.charAt(i - j - 1))
j++;
if (j == i / 2)
System.out.println("palindrome number.");
else
System.out.println("not palindrome number.");
sc.close();
}
}
}
第二题:
/**
* @author young
* @Description: TODO
* @date 2016年5月31日下午5:52:11
*/
public class Test {
public static void main(String[] args) {
int[] b = new int[50];
int sum = 0, avg = 0, t1 = 0, t2 = 0, t3 = 0,t4 = 0,t5 = 0;
for(int i = 0; i < b.length; i++){
// b[i] = (int)((100)*Math.random());
b[i] = (int)(0+Math.random()*(100-0+1));
sum+=b[i];
if(b[i]>=0 && b[i] < 60){
t1++;
}else if(b[i]>=60 && b[i] < 70){
t2++;
}else if(b[i]>=70 && b[i] < 80){
t3++;
}else if(b[i]>=80 && b[i] < 90){
t4++;
}else if(b[i]>=90 && b[i] <= 100){
t5++;
}
}
//每10行输出数组
int count = 1;
for(int i = 0; i < b.length; i++){
System.out.format("%4s", b[i]);
count++;
if(count%10 == 0){
System.out.println();
count = 1;
}
}
//冒泡排序 从大到小
for (int k = 0; k < b.length - 1; k++) {
for (int j = k + 1; j < b.length; j++) { // 升序把<改成>
if (b[k] < b[j]) {
int temp = b[k];
b[k] = b[j];
b[j] = temp;
}
}
}
System.out.println("\n最大值:" + b[0]);
System.out.println("最小值:" + b[49]);
System.out.println("平均值:" + (sum / 50));
System.out.println("[0,60)区间个数:" + t1);
System.out.println("[60,70)区间个数:" + t2);
System.out.println("[70,80)区间个数:" + t3);
System.out.println("[80,90)区间个数:" + t4);
System.out.println("[90,100]区间个数:" + t5);
}
}
展开全部
import java.util.Scanner;
/**
* 2016年6月7日下午12:11:53
*
* @author 3306 TODO something about 绿豆芽
*
*/
public class TestB1 {
private static Scanner input = new Scanner(System.in);
/**
* 输入整数
*
* @return
*/
public static long inputLong() {
long num = 0;
do {
num = input.nextLong();
if (num > 1000000 || num < 0) {
System.err.println("Input Error");
}
} while (num < 0 || num > 1000000);
return num;
}
/**
* 判断是否是回文整数
*
* @param num
* 整数
* @return
*/
public static boolean isPalindrome(long num) {
long tmp = 0;
long origin = num;
while (num > 0) {
tmp = tmp * 10 + num % 10;
num /= 10;
}
return tmp == origin;
}
public static void main(String[] args) {
long num = inputLong();
if (isPalindrome(num)) {
System.out.println("palindrome number");
} else {
System.out.println("not palindrome number");
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-06-07
展开全部
第一题:
public class Palindrome {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个0-100000的数值:");
int num = input.nextInt();
if(num > 100000){
System.out.println("Input Error!");
System.exit(0);
}
String numString = Integer.toString(num);
boolean flag = false;
//比较前一半跟后一半是否相等
//numString.length()/2是因为只需要比较前一半跟后一半,循环完前一半所有的数值即可
for(int i = 1; i <= numString.length()/2; i++){
if(numString.charAt(i) == numString.charAt(numString.length()- 1 - i)){
flag = true;
}
}
if(flag){
System.out.println("palindrome number");
}else {
System.out.println("not palindrome number");
}
}
}
第二题:
public class TestB {
public static void main(String[] args) {
int sum = 0;
int c = 0,a1 = 0,a2 = 0,a3 = 0,a4 = 0,a5 = 0,a6 =0;
int[] b = new int[50];
for(int i = 0; i <=49 ; i++){
b[i] = (int)(Math.random()*100);
if(b[i]>9){
System.out.print(b[i] + " ");
}else{
System.out.print(b[i] + " ");
}
a6++;
if(b[i] < 70 && b[i] > 60){
a2++;
}else if(b[i] < 80 && b[i] > 70){
a3++;
}else if(b[i] < 90 && b[i] > 80){
a4++;
}else if(b[i] < 100 && b[i] > 90){
a5++;
}else{
a1++;
}
if(a6%10==0){
System.out.println();
}
sum = sum + b[i];
}
Arrays.sort(b);
System.out.println("最小值:" + b[0]);
System.out.println("最大值:" + b[49]);
System.out.println("平均值是:" + sum/50 );
System.out.println("[0,60)的有:" + a1 + "个");
System.out.println("[60,70)的有:" + a2 + "个");
System.out.println("[70,80)的有:" + a3 + "个");
System.out.println("[80,90)的有:" + a4 + "个");
System.out.println("[90,100)的有:" + a5 + "个");
}
}
第三题:
public class Student {
private String id;
private String name;
public Student(String n,String i){
this.id = i;
this.name = n;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void disp(){
System.out.print(name + "的id号是:" + id );
}
}
public class Undergraduate extends Student{
public static void main(String[] args) {
Undergraduate u = new Undergraduate("张三", "101", 85, 90);
u.disp();
}
private int maths;
private int computer;
public int getMaths() {
return maths;
}
public void setMaths(int maths) {
this.maths = maths;
}
public int getComputer() {
return computer;
}
public void setComputer(int computer) {
this.computer = computer;
}
public Undergraduate(String n,String i,int m, int c){
super(n,i);
this.maths = m;
this.computer = c;
}
@Override
public void disp() {
// TODO Auto-generated method stub
super.disp();
System.out.print("数学成绩是" + maths + ",电脑成绩是:" + computer);
}
}
public class Palindrome {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个0-100000的数值:");
int num = input.nextInt();
if(num > 100000){
System.out.println("Input Error!");
System.exit(0);
}
String numString = Integer.toString(num);
boolean flag = false;
//比较前一半跟后一半是否相等
//numString.length()/2是因为只需要比较前一半跟后一半,循环完前一半所有的数值即可
for(int i = 1; i <= numString.length()/2; i++){
if(numString.charAt(i) == numString.charAt(numString.length()- 1 - i)){
flag = true;
}
}
if(flag){
System.out.println("palindrome number");
}else {
System.out.println("not palindrome number");
}
}
}
第二题:
public class TestB {
public static void main(String[] args) {
int sum = 0;
int c = 0,a1 = 0,a2 = 0,a3 = 0,a4 = 0,a5 = 0,a6 =0;
int[] b = new int[50];
for(int i = 0; i <=49 ; i++){
b[i] = (int)(Math.random()*100);
if(b[i]>9){
System.out.print(b[i] + " ");
}else{
System.out.print(b[i] + " ");
}
a6++;
if(b[i] < 70 && b[i] > 60){
a2++;
}else if(b[i] < 80 && b[i] > 70){
a3++;
}else if(b[i] < 90 && b[i] > 80){
a4++;
}else if(b[i] < 100 && b[i] > 90){
a5++;
}else{
a1++;
}
if(a6%10==0){
System.out.println();
}
sum = sum + b[i];
}
Arrays.sort(b);
System.out.println("最小值:" + b[0]);
System.out.println("最大值:" + b[49]);
System.out.println("平均值是:" + sum/50 );
System.out.println("[0,60)的有:" + a1 + "个");
System.out.println("[60,70)的有:" + a2 + "个");
System.out.println("[70,80)的有:" + a3 + "个");
System.out.println("[80,90)的有:" + a4 + "个");
System.out.println("[90,100)的有:" + a5 + "个");
}
}
第三题:
public class Student {
private String id;
private String name;
public Student(String n,String i){
this.id = i;
this.name = n;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void disp(){
System.out.print(name + "的id号是:" + id );
}
}
public class Undergraduate extends Student{
public static void main(String[] args) {
Undergraduate u = new Undergraduate("张三", "101", 85, 90);
u.disp();
}
private int maths;
private int computer;
public int getMaths() {
return maths;
}
public void setMaths(int maths) {
this.maths = maths;
}
public int getComputer() {
return computer;
}
public void setComputer(int computer) {
this.computer = computer;
}
public Undergraduate(String n,String i,int m, int c){
super(n,i);
this.maths = m;
this.computer = c;
}
@Override
public void disp() {
// TODO Auto-generated method stub
super.disp();
System.out.print("数学成绩是" + maths + ",电脑成绩是:" + computer);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |