赞
踩
输入相邻的4个正整数,计算这4个正整数,能组成多少个互不相同且无重复数字的三位数,并将结果输出。
import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("输入四个连续的整数"); Scanner scanner = new Scanner(System.in); int num1 = scanner.nextInt(); int num2 = scanner.nextInt(); int num3 = scanner.nextInt(); int num4 = scanner.nextInt(); if (num1+1 != num2){ System.out.println("必须输入四个连续的整数");} else if (num2 +1 != num3){ System.out.println("必须输入四个连续的整数");} else if (num3 +1 != num4){ System.out.println("必须输入四个连续的整数");} else { int count=0; for(int i=num1;i<=num4;i++) { for(int j=num1;j<=num4;j++) { for(int k=num1;k<=num4;k++) { if(i!=j && j!=k && k!=i) { count++; } } } } System.out.println(count); } }
public class TestShu1 { private static int[] a={4, 2, 3, 9};//定义任意四个数字数组 private static int num=0;//一个组成三位数个数 private static int hunNum=0;//组成的三位数 //bai-百位, shi-十位, ge-个位 public static int getHuNum(int bai, int shi, int ge){ return 100*bai+10*shi+1*ge; } public static void main(String[] args){ for(int i=0; i<4; i++){ for(int j=0; j<4; j++){ for(int m=0; m<4; m++){ if(a[i]!=a[j]&&a[j]!=a[m]&&a[m]!=a[i]){ hunNum=getHuNum(a[i], a[j],a[m]); num++; System.out.println(hunNum); } } } } System.out.println("一共组成三位数: "+num+"个"); }
输入一个不多于五位的正整数 num
,并输出其位数,每一位的数字,以及逆序排列的每位数字。
import java.util.Scanner; public class Program { public static void main(String[] args) { int sum = 0; Scanner input = new Scanner(System.in); System.out.println("请输入不多于五位数的正整数:"); int n = input.nextInt(); String s = "" + n; System.out.println("它是"+s.length()+"位数"); System.out.println(s); char a[] = s.toCharArray(); char a2[] = new char[a.length]; for(int i = 0;i<a.length;i++){ char b = a[a.length-i-1]; a2[i] = b; System.out.print(a2[i]); } } }
杨辉三角,又称贾宪三角形、帕斯卡三角形,是二项式系数在三角形中的一种几何排列。其中前10
行样式如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
编写程序,通过二维数组的方式输出杨辉三角的前9
行。
public class Program { public static void main(String[] args) { //定义了一个长度为10,高度为10的二维数组,数组中的值都为0; int[][] arr=new int[10][10]; for(int i=0;i<arr.length; i++) { //由于只是给杨辉三角内的位置赋值,所以是j<=i for(int j=0;j<=i;j++) { //根据规律,使用if else 赋值 if(j==0||j==i) { arr[i][j]=1; }else { arr[i][j]=arr[i-1][j-1]+arr[i-1][j]; } /*由于只是输出杨辉三角范围内的值,所以在内层循环就输出,这种方法不能全部赋值完之后再输出 "\t"的原因是10和小于10的数组的宽度不同,所以使用\t制表符能使数与数之间距离相等 */ System.out.print(arr[i][j]+"\t"); } System.out.println(); } } }
编程题
假设要在程序中描述一点,可以定义一个点类(Point)。
题目要求
定义点类(Point),内容如下:
属性:点的横坐标 x
和纵坐标 y
,其中 x
和y
都是整数,均为public。
方法:distance()
表示该点到坐标原点的距离,返回类型double。
注:点到坐标原点的距离计算公式为:Math.sqrt(x*x+y*y)
本题考查面向对象相关知识,调试需要自己定义Main方法进行调试,方可运行,判题不做要求
class PointT{ public double x,y; public PointT(){ } public PointT(int x,int y){ this.x = x; this.y = y; } public double distance(){ double d = Math.sqrt(x*x+y*y); return d; } } public class Point{ public static void main(String[] args){ PointT a =new PointT(3,4); System.out.println(a.distance()); } }
public class TriangleT{
public double s1,s2,s3;
public Triangle(double s1,double s2,double s3){ this.s1 = s1; this.s2 = s2; this.s3 = s3; } public double getPerimeter(){ return s1+s2+s3; } public String getType(){ if(s1==s2&&s1==s3&&s2==s3) return equilateral; else if((s1==s2)||(s1==s3)||(s2==s3)){ return isosceles; } else return scalene; }
}
public class Triangle{
public static void main(String[] args){
public double s1,s2,s3;
public double v1,v2,v3;
s1 = Point.sideS1(v1,v2);
s2 = sideS2(v1,v3);
s3 = sideS3(v2,v3);
TriangleT b =new TriangleT();
System.out.println();
}
「质数」又称素数,有无限个。素数定义为在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的数称为素数。
例如17
就是素数,因为它不能被2 - 16
的任一整数整除。
请编写一个程序,输入一个正整数,计算该正整数以内的素数之和
import java.util.Scanner; public class Program{ public static void main (String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int sum = 0; int k; for(int i=2;i<=num;i++){ k=0; for(int j=2;j<=Math.sqrt(i);j++){ if(i%j==0){ k++; } } if(k==0){ sum +=i; } } System.out.println(sum); } }
输入一个正整数N,通过循环语句,打印一个2*N-1行的三角形
示例
输入
4
输出
*
***
*****
*******
*****
***
*
注意: 左侧始终没有空格
import java.util.*; public class Program { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); // 先输出前n行 for(int i=0;i<=N-1;i++){ for(int j=0;j<2*i+1;j++){ System.out.print("*"); } System.out.println(); } // 输出余下的n-1行 for(int i=N-1;i>=1;i--){ for(int j=0;j<2*i-1;j++){ System.out.print("*"); } System.out.println(); } } }
编程题
中国古代数学家张丘建在他的《算经》中提出了著名的“百钱百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何?
请用程序完成百钱百鸡问题的计算,并将计算结果输出。
输出示例:
公鸡=1 母鸡=1 小鸡=1
public class Program {
public static void main(String[] args) {
for(int cock=0;cock<=20;cock++){
for(int hen=0;hen<=33;hen++){
if(cock*5+hen*3+(100-cock-hen)/3==100&&(100-cock-hen)%3==0)
System.out.println("公鸡="+cock+"母鸡="+hen+"小鸡="+(100-cock-hen));
}
}
}
}
编程题
如果一个数的真因子之和等于其本身, 这个数就称之为"完数". 例如:6
的真因子为1, 2, 3
, 而且1 + 2 + 3 = 6
, 因此6
是"完数".
请用程序实现: 输入一个整数num
,找出2(含) ~ num(含)
中的所有完数,并输出。
import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int sum; for(int i=2;i<=num;i++){ sum=0; for(int j=1;j<i;j++){ if(i%j==0){ sum+=j; } } if(sum==i){ System.out.println(i); } } } }
定义一个长度为7的数组;
输入7位含有重复数字的整数作为数组的值;
请将重复元素(包括0)删除,并输出更新后数组中的元素。
例如: 数组{1, 2, 2, 3, 4, 5},更新后为 {1, 2, 3, 4, 5}
import java.util.*; public class Program { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int []num = new int[7]; for(int i=0;i<7;i++){ num[i] = sc.nextInt(); } for(int i=0;i<7;i++){ for(int j=0;j<7;j++){ if(num[i]==num[j]&&i!=j){ //切记不要让元素比较自身 不然均为0 num[j]=0; } } } for(int i=0;i<7;i++){ if(num[i]!=0) {System.out.println(num[i]);} } } }
定义一个长度为9的数组;
输入9个数字,进行冒泡排序, 使其按照从小到大的顺序排列, 并将排列后的结果输出。
import java.util.*; public class Program { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int []num = new int [9]; for(int i=0;i<9;i++){ num[i] = sc.nextInt(); } for(int i=0;i<num.length;i++){ for(int j=0;j<num.length-1-i;j++){ if(num[j+1]<num[j]){ int t = num[j+1]; num[j+1] = num[j]; num[j] = t; } } } for(int a:num){ System.out.print(a+" "); } } }
定义圆类Circle,内容如下(需要完成):
属性:
圆心(center) ,Point类型,修饰符public。
半径(radius),double类型,修饰符public。
方法:
getArea(),获取圆的面积,修饰符public,返回值类型double。
point_in_circle(Circle circle,Point point),参数为一个圆类对象和一个点类对象,然后判断该点是否在圆内,在圆内则返回 True ,不在圆内则返回 False,修饰符public,返回值类型Boolean。
Math.abs(x) 链接讲解 https://blog.csdn.net/xmc281141947/article/details/56017147
Circle.java public class Circle{ public Point center; public double radius; public double getArea(){ return radius*radius*Math.PI; } public boolean point_in_circle(Circle circle,Point point){ // 根据该点与圆心之间距离与半径的比较来确定该点是否在圆内 Math.abs(x)=|x| 绝对值 double l = Math.sqrt(Math.abs((circle.center.x-point.x)*(circle.center.x-point.x)+(circle.center.y-point.y)*(circle.center.y-point.y))); if(l<=radius){ return true; } else{ return false; } } public static void main(String[] args){ Circle obj = new Circle(); obj.radius = 5; obj.center = new Point(); obj.center.x = 5; obj.center.y = 5; Point point = new Point(); point.x = 1; point.y = 1; System.out.println(obj.getArea()); System.out.println(obj.point_in_circle(obj,point)); } }
Point.java
public class Point {
int x;
int y;
public double distance(){
return Math.sqrt(x*x+y*y);
}
}
如下面类图所示,设计了一个名为 Account 的类,该类为银行帐户建模。
存款:xxx,余额:xxx
,(余额四舍五入到小数点后两位)。取款:xxx,余额:xxx
,(余额四舍五入到小数点后两位)。请编写Account类,及测试驱动程序,以测试所有public方法。
注:练习已预置了Customer类,可以直接使用
String.format()的详细用法 https://blog.csdn.net/anita9999/article/details/82346552
Account.java public class Account{ int id; Customer custom = new Customer(); double balance; //public Account(){} /*public Account(int id,Customer custom,double balance){ this.id = id; this.custom = custom; this.balance = balance; }*/ public String toString(){ return custom.name+"("+id+")"+",Balance=$"+String.format("%.2f",balance); } public String getCustomName(){ return custom.name; } public String deposit(double a){ balance += a; return "存款:"+a+",余额:"+String.format("%2.f",balance); } public String withdraw(double b){ balance -= b; return "取款:"+b+",余额:"+String.format("%2.f",balance); } public static void main(String[] args){ Account obj = new Account(); obj.id = 1; obj.custom.name = "张三"; obj.balance = 500.354; System.out.println(obj.toString()); System.out.println(obj.getCustomName()); System.out.println(obj.deposit(20.00)); System.out.println(obj.withdraw(10.00)); } }
Customer.java public class Customer { public int id; public String name; public char gender; public String toString(){ return "Customer[id="+id+",name="+name+",gender="+gender+"]"; } public static void main(String[] args) { Customer obj = new Customer(); obj.id = 1; obj.name = "张三"; obj.gender = 'm'; System.out.println(obj.toString()); } }
编程题
下面类图定义了两个接口: GeometricObject
可以计算几何对象的周长与面积,另一个 Resizable
以指定的百分比修改尺寸重置几何图形的大小。
请编写接口及其两个实现类。
public interface GeometricObject{
public double getPerimeter();
public double getArea();
}
public class Circle implements GeometricObject{ double radius = 1.0; public Circle(double radius){ this.radius = radius; } @Override public double getPerimeter() { return radius*Math.PI*2; } @Override public double getArea() { return radius*radius*Math.PI; } }
public interface Resizable {
public double resize(int percent);
}
public class ResizableCircle extends Circle implements Resizable {
public ResizableCircle(double radius) {
super(radius);
}
@Override
public double resize(int percent) {
return (percent*getArea())/100;
}
}
public class Test extends ResizableCircle{
public Test(double radius) {
super(radius);
}
public static void main(String[] args) {
double radius = 3.0;
Test t = new Test(radius);
System.out.println("圆的面积为:"+t.getArea());
System.out.println("圆的周长为:"+t.getPerimeter());
System.out.println("圆修改后的尺寸为:"+t.resize(50));
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。