天天看點

Java第二次作業參考代碼

Java第二次作業參考代碼

【程式11】

題目:有1、2、3、4四個數字,能組成多少個互不同樣且無反複數字的三位數?都是多少?

public class lianxi11 {

public static void main(String[] args) {

int count = 0;

for(int x=1; x<5; x++) {

for(int y=1; y<5; y++) {

for(int z=1; z<5; z++) {

if(x != y && y != z && x != z) {

count ++;

System.out.println(x*100 + y*10 + z );

}

System.out.println("共同擁有"+ count + "個三位數");

}

【程式12】

題目:企業發放的獎金依據利潤提成。利潤(I)低于或等于10萬元時。獎金可提10%。利潤高于10萬元,低于20萬元時,低于10萬元的部分按10%提成。高于10萬元的部分,可可提成7.5%。20萬到40萬之間時。高于20萬元的部分。可提成5%;40萬到60萬之間時高于40萬元的部分,可提成3%;60萬到100萬之間時,高于60萬元的部分。可提成1.5%,高于100萬元時,超過100萬元的部分按1%提成。從鍵盤輸入當月利潤,求應發放獎金總數?

import java.util.*;

public class lianxi12 {

double x = 0,y = 0;

System.out.print("輸入當月利潤(萬):");

Scanner s = new Scanner(System.in);

x = s.nextInt();

if(x > 0 && x <= 10) {

y = x * 0.1;

} else if(x > 10 && x <= 20) {

y = 10 * 0.1 + (x - 10) * 0.075;

} else if(x > 20 && x <= 40) {

y = 10 * 0.1 + 10 * 0.075 + (x - 20) * 0.05;

} else if(x > 40 && x <= 60) {

y = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (x - 40) *0.03;

} else if(x > 60&& x <= 100) {

y = 20 * 0.175 + 20 * 0.05 + 20 * 0.03 + (x - 60) *0.015;

} else if(x > 100){

y = 20 * 0.175 + 40 * 0.08 + 40 * 0.015 + (x - 100) *0.01;

System.out.println("應該提取的獎金是 " + y + "萬");

【程式13】

題目:一個整數,它加上100後是一個全然平方數,再加上168又是一個全然平方數,請問該數是多少?

public class lianxi13 {

for(int x =1; x<100000; x++) {

if(Math.sqrt(x+100) % 1 == 0) {

if(Math.sqrt(x+268) % 1 == 0) {

System.out.println(x + "加100是一個全然平方數。再加168又是一個全然平方數");

/*按題意循環應該從-100開始(整數包含正整數、負整數、零)。這樣會多一個滿足條件的數-99。

可是我看到大部分人解這道題目時都把題中的“整數”了解成正整數。我也就随大流了。*/

【程式14】

題目:輸入某年某月某日,推斷這一天是這一年的第幾天?

public class lianxi14 {

int year, month, day;

int days = 0;

int d = 0;

int e;

input fymd = new input();

do {

e = 0;

System.out.print("輸入年:");

year =fymd.input();

System.out.print("輸入月:");

month = fymd.input();

System.out.print("輸入天:");

day = fymd.input();

if (year < 0 || month < 0 || month > 12 ||day < 0 || day > 31) {

System.out.println("輸入錯誤。請又一次輸入!

");

e=1 ;

}while( e==1);

for (int i=1; i <month; i++) {

switch (i) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

days = 31;

break;

case 4:

case 6:

case 9:

case 11:

days = 30;

case 2:

if ((year % 400 == 0) || (year % 4 == 0 &&year % 100 != 0)) {

days = 29;

} else {

days = 28;

d += days;

System.out.println(year + "-" + month +"-" + day + "是這年的第" + (d+day) + "天。");

class input{

public int input() {

int value = 0;

value = s.nextInt();

return value;

【程式15】

題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。

public class lianxi15 {

input fnc = new input();

int x=0, y=0, z=0;

System.out.print("輸入第一個數字:");

x = fnc.input();

System.out.print("輸入第二個數字:");

y = fnc.input();

System.out.print("輸入第三個數字:");

z = fnc.input();

if(x > y) {

int t = x;

x = y;

y = t;

if(x > z) {

x = z;

z = t;

if(y > z) {

int t = y;

y = z;

System.out.println( "三個數字由小到大排列為: "+x + " " + y + " " + z);

【程式16】

題目:輸出9*9口訣。

public class lianxi16 {

for(int i=1; i<10; i++) {

for(int j=1; j<=i; j++) {

System.out.print(j + "*" + i + "="+ j*i + " " );

if(j*i<10){System.out.print(" ");}

System.out.println();

【程式17】

題目:兩個乒乓球隊進行比賽,各出三人。

甲隊為a,b,c三人。乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請程式設計式找出三隊賽手的名單。

public class lianxi18 {

static char[] m = { 'a', 'b', 'c' };

static char[] n = { 'x', 'y', 'z' };

for (int i = 0; i < m.length; i++) {

for (int j = 0; j < n.length; j++) {

if (m[i] == 'a' && n[j] == 'x') {

continue;

} else if (m[i] == 'a' && n[j] == 'y') {

} else if ((m[i] == 'c' && n[j] == 'x')

|| (m[i] == 'c' &&n[j] == 'z')) {

} else if ((m[i] == 'b' && n[j] == 'z')

|| (m[i] == 'b' &&n[j] == 'y')) {

} else

System.out.println(m[i] + " vs " + n[j]);

【程式18】

題目:列印出例如以下圖案(菱形)

*

***

*****

*******

public class lianxi19 {

int H = 7, W = 7;//高和寬必須是相等的奇數

for(int i=0; i<(H+1) / 2; i++) {

for(int j=0; j<W/2-i; j++) {

System.out.print(" ");

for(int k=1; k<(i+1)*2; k++) {

System.out.print('*');

for(int i=1; i<=H/2; i++) {

for(int k=1; k<=W-2*i; k++) {

【程式19】

題目:有一分數序列:2/1,3/2,5/3。8/5。13/8,21/13...求出這個數列的前20項之和。

public class lianxi20 {

int x = 2, y = 1, t;

double sum = 0;

for(int i=1; i<=20; i++) {

sum = sum + (double)x / y;

t = y;

y = x;

x = y + t;

System.out.println("前20項相加之和是: " + sum);