编程求助:求两道题目的JAVA代码

作者&投稿:休娟 (若有异议请与网页底部的电邮联系)
求助 求助!!!2个 java 编程的问题~

最原始的只能这样排序后处理了,完整代码如下:
public class Test {

public static void main(String args[]) {

int[] ary = {1, 2, 3, 2, 1, 6, 3, 4, 5, 2};

//Ary will be sorted as {1, 1, 2, 2, 2, 3, 3, 4, 5, 6}
sortArray(ary);

//output
int previous = ary[0];
System.out.print(previous);

for(int i = 1; i < ary.length; i++){
if(ary[i] != previous){
previous = ary[i];
System.out.print("" + ary[i]);
}
}

System.out.println();

int[] ary1 = {5, 5, 2, 6, 1, 6};
int[] ary2 = {5, 2, 5, 6, 6, 1};

sortArray(ary1);
sortArray(ary2);

if(ary1.length != ary2.length){
System.out.println("Different array because of size");
}

boolean isSameAry = true;
for(int i = 0; i < ary1.length; i++){
if(ary1[i] != ary2[i]){
isSameAry = false;
System.out.println("Different array because of item");
break;
}

}

if(isSameAry){
System.out.println("Same array!");
}

}
//Sort array
private static void sortArray(int[] ary) {
for(int i = 0; i < ary.length; i++){

for(int j = i; j < ary.length; j++){
if(ary[j] < ary[i]){
int temp = ary[i];
ary[i] = ary[j];
ary[j] = temp;
}
}

}
}

}

---------------------------
1 2 3 4 5 6
Same array!

第一个嵌套循环外层控制行数内层控制列数
记得导包
Scanner sc=new Scanner(System.in);
int i=sc.nextInt();
for(int x=0;x<i;x++){
for(int y=1;y<x+1;y++){
System.out.print("*");
}
System.out.println();
}
呃我看错了!!!原来是边在右边那就要3层嵌套了,中间套个System.out.print("")就行!!
我大致写下
for(int x = 0; x<i ; x++) {
for(int j = i; j > x; j--) {
System.out.print(" "); }
for(int k = 0; k < =x+1; k++) {
System.out.print("*"); }
System.out.println();
第二题 实在是面向对象的基础就不打了,面向对象思想纯手打望采纳主要我这笔记本没装Myeclipse不想敲代码!!

可能你会觉得我在把问题变得复杂化,但是请看下去:
(请将代码中的````换成一个tab符)

首先我们定义一个异常类: UnExpectedNumberException
表示所接收到的数字是我们不想要的,类如,我们只对正数进行平方根处理,
但是传入的是一个负数,于是我们可以抛出这个异常

// UnExpectedNumberException.java
//package cn.plause.test.narcissus;

public final class UnExpectedNumberException extends Exception {
````private static final long serialVersionUID = 3080196113722623423L;
````private static final String MESSAGE_FMT = "Number should bigger than %s and smaller than %s";

````public UnExpectedNumberException(int min, int max) {
````````super(String.format(MESSAGE_FMT, min, max));
````}
}

接下来,我们再定义一个接口:NumberAcceptor (你可以理解为数字接受器)
该接口只有一个方法:
public boolean accept(Integer number) /* throws UnExpectedNumberException */;
该方法接受一个参数Integer number,如果实现该接口的类认为
这个number是他需要的或者相信的或者什么其他的东西的话就会返回true,否则false.

// NumberAcceptor.java
//package cn.plause.test.narcissus;

public interface NumberAcceptor {
````public boolean accept(Integer number) /* throws UnExpectedNumberException */;
}

这个接口具有通用性,今天你可能使用它判断一个数是否是水仙花数,明天说不定会用它
来判断一个数是不是镜像数(3443就是一个镜像数)或者什么其它的数字。

下面我们回到重点,因为前面跟水仙花数的逻辑判断一点也没有搭上边。
我们知道,按照一般的逻辑就是这样
for (i = 100; i < 1000; i++) {
````如果 i 是一个水仙花数则打印 i
}

而按照一般的判断一个水仙花数的逻辑就是这样的
i / 100 得到百位,
i % 100 / 10 得到十位,
i % 10 得到个位。
然后把这百、十、个位分别立方相加得到一个和,
再将这个和同 i 相比较,如果相等则是水仙花,否则不是。

其实我们还有另一种逻辑的:
一个数 153,如果把它看成是一个字符串的话就是 "153",
字符串的第一个字符是 '1',第二个是 '5',第三个是 '3'。
为什么不直接 1 * 3 + 5 * 3 + 3 * 3 呢?
可能你会说 '1' != 1,
那么 '1' - '0' 呢?!
'1' 的ASC码是 31,'0'的ASC码是30,
显示有 '1' - '0' = 1, '8' - '0' = 8
所以我们可以直接 ('1' - '0') * 3 + ('5' - '0') * 3 + ('3' - '0') * 3

注意,本人并不是想说明别人的算法是不正确的,只是想说清楚我的算法。
请看最重要的类:
(怕大家调试不方便,所以把异常去掉了)

// NarcissusNumber.java
//package cn.plause.test.narcissus;

public final class NarcissusNumber {
````/**
```` * 计算一个数字的每一位的立方和。
```` * 这个方法不只是能算出 3 位数的水仙花数。
```` */
````public static int pow(Integer number) {
````````String digits = number.toString();
````````int total = 0;

````````/*
```````` * 字符 '9' - '0' = 9, '8' - '0' = 8
```````` * 以此类推……
```````` */
````````for (int i = 0; i < digits.length(); i++) {
````````````total += (int) Math.pow(digits.charAt(i) - '0', 3);
````````}

````````return total;
````}

````public static void main(String[] args) {
````````/* 新建一个数字接受器对象 */
````````NumberAcceptor narcissusNA = new NumberAcceptor() {
````````````/* 实现NumberAcceptor接口中的accept方法 */
````````````public boolean accept(Integer number) /* throws UnExpectedNumberException */ {
````````````````// 三位数的水仙花数肯定是大于100小于1000的数
````````````````if (! (number > 100 && number < 1000)) {
````````````````````/* throw new UnExpectedNumberException(100, 1000); */
````````````````}

````````````````// 如果这个整数的每一位的立方和与其本身相等,则其是水仙花数
````````````````return pow(number) == number;
````````````}
````````};

````````// 你可以把这个循环的初始条件与结束条件更改以使本程序算出多位水仙花数
````````for (int i = 101; i < 1000; i++) {
````````````// 如果是水仙花数,则打印这个整数
````````````if (narcissusNA.accept(i)) {
````````````````System.out.println(i);
````````````}
````````}
````}
}

希望不要嫌麻烦。

第二个: 个人所得税,这个没有什么扩展性,所以简单写了

public final class TaxUtils {
````public static double calculatePersonalTax(int wage) {
````````if (wage <= 1000) { // 没有超过 1000 不用给钱
````````````return 0d;
````````}

````````int diff = wage - 1000;

````````// 不知道超过40000的怎么算
````````if (diff > 40000) {
````````````return -1d;
````````}

````````if (diff > 20000) { // 超出 20000
````````````return diff * 0.25d;
````````} else if (diff > 5000) { // 超出 5000
````````````return diff * 0.20d;
````````} else if (diff > 2000) { // 超出 2000
````````````return diff * 0.15d;
````````} else if (diff > 500) { // 超出 500
````````````return diff * 0.10d;
````````} else { // 超出小于 500
````````````return diff * 0.05d;
````````}
````}

````public static void main(String[] args) {
````````System.out.println(calculatePersonalTax(30000));
````}
}

1.
public class Narcissus {
public static void main(String[] args) {
printNarcissus();
}

private static void printNarcissus() {
for (int i = 100; i < 1000; i++) {
int a = i / 100;
int b = (i - a * 100) / 10;
int c = i - a * 100 - b * 10;
if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == i) {
print(a, b, c);
}
}
}

private static void print(int a, int b, int c) {
System.out.println("" + a + b + c + "=" + a + "^3+" + b + "^3+" + c
+ "^3");
}
}

153=1^3+5^3+3^3
370=3^3+7^3+0^3
371=3^3+7^3+1^3
407=4^3+0^3+7^3

1.
public class Test {
public static void main(String [] args){
int bai,shi,ge;
for(int i=100;i<1000;i++)
{
bai=i/100;
shi=(i%100)/10;
ge=i%10;
if(i==Math.pow(bai,3)+Math.pow(shi,3)+Math.pow(ge, 3))
System.out.println("您要求的水仙花数为:");
System.out.println(i);
}
}
}
2.这个我是用的从键盘接受所输入的数字来判断的,你可以根据自己的情况修改
import java.util.*;

public class Test {
public static void main(String [] args){

Scanner in=new Scanner(System.in);
System.out.println("你输入你要求的所得税的工资:");
double pay=in.nextDouble();
if(pay<1000){
System.out.println("不用交纳个人所得税!");
}
else{
if(pay>1000 && pay<=1500)
System.out.println("您应该交纳的所得税为:"+pay*0.05);
if(pay>1500 && pay<=3000)
System.out.println("您应该交纳的所得税为:"+pay*0.1);
if(pay>3000 && pay<=6000)
System.out.println("您应该交纳的所得税为:"+pay*0.15);
if(pay>6000 && pay<=21000)
System.out.println("您应该交纳的所得税为:"+pay*0.2);
if(pay>21000 && pay<=41000)
System.out.println("您应该交纳的所得税为:"+pay*0.25);
}
}
}

///编程求出所有的 “水仙花数”:2006-10-10 08:43///
把下面代码复制到代码区,点击窗体触发事件

Private Sub Form_Click()
Dim a, b, c As Integer 'a(个)b(十)c(百)
For a = 0 To 9
For b = 0 To 9
For c = 1 To 9
If a ^ 3 + b ^ 3 + c ^ 3 = a + 10 * b + 100 * c Then
MsgBox 100 * c + 10 * b + a
End If
Next c
Next b
Next a
End Sub

烟花飘飘的空间,里面还有几个例子,你可以看


两道数学题目(方程解,要数量关系和设句!)
解:设乙艇每小时行X千米 乙艇行的路程-甲艇行的路程=甲乙距离 6X-18*6=24 6X=132 X=22 答:乙艇每小时应行22千米.解:设第一组比第二组先开始工作X天 第一小组装配的台数-第二小组装配的台数=第二小组比第一小组多装配的台数 150*(X+5)-180*5=300 150X=450 X=3 答:第一小组比...

两道二项方程题目(最好用换元法)求详细过程一定要详细 详细!!!谢谢...
这二个方程都不需要换元,都可以因式分解 1解:x^3-2x^2-3x+6=0 x^2(x-2)-3(x-2)=0 (x-2)(x^2-3)=0 x=2 x^2-3=0 x=±√3 x1=2 x23=±√3 2解:5x^2+23x-10=0 (5x-2)(x+5)=0 x1=2\/5 x2=-5

两道关于二元二次方程组的题目
1、2xy=20 所以x²+2xy+y²-3x-3y=8+20 (x+y)²-3(x+y)-28=0 (x+y-7)(x+y+4)=0 x+y=7,x+y=-4 x+y=7 y=7-x xy=7x-x²=10 x²-7x+10=0 x=2,x=5 y=7-x x+y=-4 y=-x-4 xy=-x²-4x=10 x²+4x+10=0 无解...

数学两道解方程题目,求解答
(1)a(x-1)=2(x+1)===> ax-a=2x+2 ===> (a-2)x=a+2 已知a≠2,所以a-2≠0 所以,x=(a+2)\/(a-2)(2)(1\/2)(bx)^2-1=0 ===> (1\/2)(bx)^2=1 ===> (bx)^2=2 ===> bx=±√2 ===> x=±(√2)\/b ...

五年级简易方程题目两道题
解:(1)依题意得 小敏到学校路程为70a米 小玲到学校路程为65a米 70a>65a70a-65a=5a 所以小玲家里离学校近,进5a米 (2)依题意得方程为s=70a+65a(米)将a=15代入方程得:s=70×15+65×15 =2025 答:(1)所以小玲家里离学校近,进5a米 (2)小玲家到小敏家一共有2025米 ...

求解这两道题,初中数学谢谢。
1、解:将x,y的值带入方程组得 -3a-2c=1 (1)-3c+2b=2(2)现在要通过(1)(2)的组合消去c就可以得到a,b的关系了。(1)*3-(2)*2,得到9a+4b=1 2、解:将x,y值带入方程组,得到3a1+4b1=c1,3a2+4b2=c2 这就是c1和c2的值,带入下面那个方程组得到 3a1x+2b1y=5c...

悬赏分:20分!就问两道关于二元一次方程的题目的详细过程,很简单的,不...
既然x=3,y=2是那个方程组的解,那么在那个方程组中x=3,y=2 (m+n)x-my=9 3(m+n)-2m=9 3m+3n-2m=9 m+3n=9① mx+ny=13 3m+2n=13② ①和②组成方程组 ①×3 3m+9n=27③ ③-② 7n=14 n=2 m=3

求两道三元一次方程的正整数解
这叫不定方程组,方法确实需要一个个带入,不过在应用题中有限定条件,即得数必须都为正整数,那样就大大限制了最后结果 1.先消去X,化简得11y-24z=31 11y=31+24z y=(31+24z)\/11 这种方程如果不加限定的话本来就是无数解,中国古代就用类似的复杂得多的数学题,如五家共井,百鸡问题,...

求15道行程问题的题目附加答案的。详细点,最好是两种方法都有的_百度知...
。。总路程7.解:设两地相距y千米。则有:y-(45+55)×9\/5=25%y y-180=0.25y 解得:y=240(此中的y可以改成任意字母)行程问题中的相遇问题的重点是速度和与共同所用的时间的乘积等于总路程 此题中可以画线段图解决,甲乙两人的行走路程先求出来,再加上总路程的25%,就是全路程了 ...

求做两道高中物理题 要有过程
(1).根据题意可得 此时水的重力恰好提供向心力 F=mv平方\/r=mg v2\/r=g=10m\/s2 r等于绳长 v2=10m\/s2*0.6m=6m2\/s2 v=√6m\/s (2).水在最高点v=3m\/s时 水所受的向心力是F=mv2\/r=0.5*9\/0.6=7.5N 水的重力是G=mg=0.5*10=5N 则水对桶底的压力F=7.5-5=2.5N (1)...

永修县13521737158: JAVA高手来帮帮忙啦,两道编程题.悬赏30分.在线等!!!编程题两道,编完回复前请验证下,我也会验证,验证正确分就是你的了.比较急!!!根据... -
柳委复方:[答案] 第一题: public class Complex { private double real;// 实部 private double imagin;// 虚部 // 重载默认构造方法 public Complex() { real = 0; imagin = 0; } // 有参构造方法 public Complex(double real, double imagin) { this.real = real; this.imagin = imagin...

永修县13521737158: 请教两道JAVA编程题?
柳委复方: 第一题: public class no1 { public static void main(String args[]) { int i,j; for(i=1;i&lt;=5;i++){ for(j=1;j&lt;=i;j++) System.out.print("*"); System.out.println(""); } } }

永修县13521737158: 求助两道JAVA编程题!!!!!! -
柳委复方: public class jisuan { public int getMax(){ int k=1; int j=0; int n=1; int m=1; int result =0; for(int i=1;i //计算之前将前一个加数拿出来 result=n; k=1; //计算加数 for(j=0;j k=k*2; } n=n+k; System.out.println("加数:"+n); m=m+n; if(m>999){ System.out....

永修县13521737158: 跪求问两道道java编程题
柳委复方: import javax.swing.JFrame; public class Test{ public static void main(String[] args){ jFrame jf=new JFrame(); jf.setVisible(true); jf.setTitle("1234153"); jf.setSize(300,200); } }

永修县13521737158: 十万火急!!跪求解决2道JAVA编程题!!
柳委复方: package test; import java.util.HashMap; import java.util.Map; public class MathTest { /** * 编写一个程序:调用java.lang.Math的成员函数“public static double random()” * 运算下面表达式10000次, * (int) (Math.random()*20+0.5) * 统计其中生成...

永修县13521737158: 用JAVA语言编写下面两道题目
柳委复方: 第一题: import java.util.*; public class Test { public static void main(String[]args) { Scanner input=new Scanner(System.in); String temp=""; System.out.println("请输入字符,以#结束:"); String text=input.next(); while(!temp.equals("#")...

永修县13521737158: 2道JAVA编程题,等高手 -
柳委复方: 第一题:1 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数.代码如下:import java.util.*; public class Ss { public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("请输入字符...

永修县13521737158: 求助简单的JAVA编程题 -
柳委复方: import java.io.*;class test{public static void main(String []args) { String []a={"January","February","March","April","May",...

永修县13521737158: 两个Java编程题,急求! -
柳委复方: 1./**多边形*/ public class TestPolygon { public static void main(String[] args) { Polygon p1 = new ThrPolygon(); Polygon p2 = new ForthPolygon(); Polygon p3 = new EighthPolygon(); System.out.println("p1: "+p1); System.out.println("p2: "+p2); ...

永修县13521737158: java语言问题问题,一共两道题,求大神解决
柳委复方: int[] a={ 5, 7, 8, 11, 1, 6, 8 }; int maxAt=0, max=a[0]; for(int i=1; i<a.length; i++) { if(a[i]>max) { maxAt=i; max=a[i]; } } System.out.println("max="+max+", at "+maxAt);另一题请另外提问(向我求助), 不必悬赏. 另一题答了 第一题的完整代码 ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网