[ขั้นตอนที่ 1] หัวข้อ: ปัญหาคลาสสิก: มีกระต่ายคู่หนึ่งให้กำเนิดกระต่ายคู่หนึ่งทุกเดือนตั้งแต่เดือนที่สามหลังคลอด ทุกเดือน ถ้ากระต่ายถึงไม่ตายจะมีกระต่ายทั้งหมดเดือนละเท่าไร?
1. วิเคราะห์โปรแกรม : รูปแบบของกระต่าย มีลำดับที่ 1,1,2,3,5,8,13,21....
คลาสสาธารณะ exp2 { โมฆะสาธารณะคงที่ main (String args []) { int i = 0; for (i = 1; i <= 20; i ++)
System.out.println(ฉ(i));
} สาธารณะคงที่ int f (int x)
{ if(x==1 || x==2) ส่งคืน 1;
กลับ ฉ(x-1)+ฉ(x-2);
-
-
หรือ
คลาสสาธารณะ exp2 { โมฆะสาธารณะคงหลัก (String args []) { int i = 0;
คณิตศาสตร์ mymath = คณิตศาสตร์ใหม่ (); สำหรับ (i=1;i<=20;i++)
System.out.println(mymath.f(i));
-
} คณิตศาสตร์ในชั้นเรียน
{ สาธารณะ int f(int x)
{ if(x==1 || x==2) ส่งคืน 1;
กลับ ฉ(x-1)+ฉ(x-2);
-
-
[โปรแกรม 2] คำถาม: หาจำนวนเฉพาะที่มีระหว่าง 101-200 แล้วส่งออกจำนวนเฉพาะทั้งหมด
1. การวิเคราะห์โปรแกรม: วิธีหาจำนวนเฉพาะ: ใช้ตัวเลขหาร 2 ถึง sqrt (ตัวเลขนี้) ตามลำดับ หากหารได้
หมายความว่าจำนวนนี้ไม่ใช่จำนวนเฉพาะ ไม่เช่นนั้นก็เป็นจำนวนเฉพาะ
คลาสสาธารณะ exp2 { โมฆะสาธารณะคงหลัก (สตริง args []) { int i = 0;
คณิตศาสตร์ mymath = คณิตศาสตร์ใหม่ (); สำหรับ (i=2;i<=200;i++) if(mymath.iszhishu(i)==true)
System.out.println(i);
-
} คณิตศาสตร์ในชั้นเรียน
{ สาธารณะ int f(int x)
{ if(x==1 || x==2) ส่งคืน 1;
กลับ ฉ(x-1)+ฉ(x-2);
} iszhishu บูลีนสาธารณะ (int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0 ) คืนค่าเท็จ;
-
-
[ขั้นตอนที่ 3] หัวข้อ: พิมพ์ "หมายเลขนาร์ซิสซัส" ทั้งหมดที่เรียกว่า "หมายเลขนาร์ซิสซัส" หมายถึงตัวเลขสามหลักที่ผลรวมลูกบาศก์เท่ากับตัวเลขนั้นเอง ตัวอย่างเช่น: 153 คือ "เลขนาร์ซิสซัส" เพราะ 153=1 ลูกบาศก์ + 5 ลูกบาศก์ + 3 ลูกบาศก์
1. การวิเคราะห์โปรแกรม: ใช้ for loop เพื่อควบคุมตัวเลข 100-999 และแยกแต่ละตัวเลขออกเป็นหน่วย สิบ และร้อย
ประสบการณ์คลาสสาธารณะ2{
โมฆะคงที่สาธารณะ main (String args []) { int i = 0;
คณิตศาสตร์ mymath = คณิตศาสตร์ใหม่(); for(i=100;i<=999;i++) if(mymath.shuixianhua(i)==true)
System.out.println(i);
-
} คณิตศาสตร์ในชั้นเรียน
{ สาธารณะ int f(int x)
{ if(x==1 || x==2) ส่งคืน 1;
กลับ ฉ(x-1)+ฉ(x-2);
} iszhishu บูลีนสาธารณะ (int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0 ) คืนค่าเท็จ;
} บูลีนสาธารณะ shuixianhua (int x)
{ int i=0,j=0,k=0;
i=x/100;
เจ=(x % 100) /10;
ik=fx % 10; (x==i*i*i+j*j*j+k*k*k) คืนค่าจริง
กลับเท็จ;
-
-
【ขั้นตอนที่ 4】หัวข้อ: แยกจำนวนเต็มบวกให้เป็นตัวประกอบเฉพาะ ตัวอย่างเช่น: อินพุต 90 พิมพ์ออกมา 90=2*3*3*5
การวิเคราะห์โปรแกรม: หากต้องการแยก n ออกเป็นปัจจัยเฉพาะ คุณควรหาจำนวนเฉพาะขั้นต่ำ k ก่อน จากนั้นจึงเติมให้สมบูรณ์ตามขั้นตอนต่อไปนี้:
(1) ถ้าจำนวนเฉพาะนี้เท่ากับ n พอดี แสดงว่ากระบวนการสลายตัวประกอบเฉพาะสิ้นสุดลงแล้ว ให้พิมพ์ออกมา
(2) ถ้า n <> k แต่ n หารด้วย k ลงตัว ค่าของ k ควรพิมพ์ออกมา และผลหารของ n หารด้วย k ควรใช้เป็นจำนวนเต็มบวกใหม่ และขั้นตอนแรกควรทำซ้ำ
(3) ถ้า n หารด้วย k ไม่ลงตัว ให้ใช้ k+1 เป็นค่าของ k แล้วทำซ้ำขั้นตอนแรก
คลาสสาธารณะ exp2 { public exp2 () {} โมฆะสาธารณะ fengjie (int n) { สำหรับ (int i = 2; i <= n/2; i ++) { if (n% i == 0) {
System.out.print(i+"*");
เฟิงเจี๋ย(n/i);
-
-
System.out.print(n);
System.exit(0);///ประโยคนี้ไม่สามารถละเว้นได้ ไม่เช่นนั้นผลลัพธ์จะผิด
} โมฆะสาธารณะคงหลัก (สตริง [] args) {
สตริง str="";
exp2 c=ประสบการณ์ใหม่2();
str=javax.swing.JOptionPane.showInputDialog("กรุณากรอกค่า N (กรอก exit เพื่อออก):");
อินท์ เอ็น;
Nt=r0y;{
N=จำนวนเต็ม.parseInt(str);
} จับ (NumberFormatException e){
e.printStackTrace();
-
System.out.print(N+"การสลายตัวของปัจจัยเฉพาะ:"+N+"=");
ค.เฟิงเจี๋ย(N);
-
-
[โปรแกรม 5] คำถาม: ใช้การซ้อนตัวดำเนินการแบบมีเงื่อนไขเพื่อตอบคำถามนี้: นักเรียนที่มีคะแนนการศึกษา >=90 คะแนนจะถูกแทนด้วย A, นักเรียนที่มีคะแนนระหว่าง 60-89 จะถูกแทนด้วย B และนักเรียนที่มีคะแนนต่ำกว่า 60 จะถูกแทน โดย C.
1. การวิเคราะห์โปรแกรม: (a> b)?a:b นี่เป็นตัวอย่างพื้นฐานของตัวดำเนินการแบบมีเงื่อนไข
นำเข้า javax.swing.*; คลาสสาธารณะ ex5 { โมฆะสาธารณะหลัก (สตริง [] args) {
สตริง str="";
str=JOptionPane.showInputDialog("กรุณาระบุค่า N (ป้อน exit เพื่อออก):");
อินท์ เอ็น;
Nt=r0y;{
N=จำนวนเต็ม.parseInt(str);
ca} tch (NumberFormatException e) {
e.printStackTrace();
-
str=(N>90?"A":(N>60?"B": "C"));
System.out.println(str);
-
-
[โปรแกรม 6] คำถาม: ใส่จำนวนเต็มบวกสองตัว m และ n แล้วหาตัวหารร่วมมากและตัวคูณร่วมน้อย
1. การวิเคราะห์โปรแกรม: ใช้วิธีการระเหย
ตัวหารร่วมมาก:
CommonDivisor คลาสสาธารณะ { โมฆะสาธารณะคงหลัก (String args [])
{ ตัวหารทั่วไป (24,32);
} int commonDivisor แบบคงที่ (int M, int N)
{ ถ้า(N<0||M<0)
-
Sryesttuermn.out.println("ข้อผิดพลาด!"); -1;
} ถ้า(ยังไม่มี==0)
-
rSeytsutrenm.out.println("ตัวหารร่วมที่ใหญ่ที่สุดคือ :"+M); M;
} ส่งคืนตัวหารร่วม (N,M%N);
-
-
ตัวคูณร่วมน้อยและตัวหารร่วมมาก:
นำเข้า java.util.Scanner คลาสสาธารณะ CandC
-
//วิธีการต่อไปนี้คือการหาตัวหารร่วมที่ยิ่งใหญ่ที่สุด
int gcd คงที่สาธารณะ (int m, int n)
{ในขณะที่ (จริง)
{if ((m = m % n) == 0) ส่งคืน n; if ((n = n % m) == 0) ส่งคืน m;
-
โมฆะคงที่สาธารณะ main (String args []) พ่นข้อยกเว้น
-
//รับค่าอินพุต
//คางสแกนเนอร์ = สแกนเนอร์ใหม่ (System.in);
/i/ntint a = chin.nextInt(), b = chin.nextInt(); a=23; int b=32;
System.out.println("ตัวคูณร่วมน้อย: " + a * b / c + "/n ตัวหารร่วมมาก: " + c);
-
[โปรแกรม 7] คำถาม: กรอกบรรทัดอักขระแล้วนับจำนวนตัวอักษรภาษาอังกฤษ ช่องว่าง ตัวเลข และอักขระอื่นๆ ในนั้น
1. การวิเคราะห์โปรแกรม: การใช้คำสั่ง while เงื่อนไขคืออักขระอินพุตไม่ใช่ '/n'
นำเข้า java.util.Scanner; class สาธารณะ ex7 { public static void main (String args [])
-
System.out.println("กรุณากรอกข้อความ:");
สแกนเนอร์สแกน = สแกนเนอร์ใหม่ (System.in);
สตริง str=scan.next();
สตริง E1="[/u4e00-/u9fa5]";
ซินเทอร์ติง E2="[a-zA-Z]"; countH=0; int countE=0; char[] arrChar=str.toCharArray();
สตริง[] arrStr=สตริงใหม่[arrChar.length]; for (int i=0;i<arrChar.length;i++)
-
arrStr[i]=String.valueOf(arrChar[i]);
} สำหรับ (สตริง i: arrStr )
{ถ้า (i.ตรงกัน(E1))
-
นับH++;
} ถ้า (i.ตรงกัน(E2))
-
นับE++;
-
-
System.out.println("จำนวนตัวอักษรจีน"+countH);
System.out.println("จำนวนตัวอักษร"+countE);
-
-
[ขั้นตอนที่ 8] คำถาม: จงหาค่าของ s=a+aa+aaa+aaaa+aa...a โดยที่ a คือตัวเลข ตัวอย่างเช่น 2+22+222+2222+22222 (ขณะนี้มีการเพิ่มตัวเลขทั้งหมด 5 ตัว) การบวกตัวเลขหลายตัวจะถูกควบคุมโดยแป้นพิมพ์
1. การวิเคราะห์โปรแกรม: หัวใจสำคัญคือการคำนวณมูลค่าของแต่ละรายการ
นำเข้า java.io.*; Sumloop คลาสสาธารณะ { public static void main(String[] args) พ่น IOException
{ints=0;
สตริงเอาต์พุต = "";
BufferedReader stadin = BufferedReader ใหม่ (InputStreamReader ใหม่ (System.in));
System.out.println("กรุณาระบุค่าของ a");
อินพุต Sfotrring =stadin.readLine(); (int i =1;i<=Integer.parseInt(input);i++)
-
ionuttput+=input; a=Integer.parseInt(เอาท์พุต);
ส+=ก;
-
System.out.println(s);
-
-
คำอธิบายอื่น:
นำเข้า java.io.*; Sumloop คลาสสาธารณะ { public static void main (String [] args) พ่น IOException
{ int s=0; int n;
BufferedReader stadin = BufferedReader ใหม่ (InputStreamReader ใหม่ (System.in));
อินพุตสตริง = stadin.readLine();
fno=rInteger.parseInt(อินพุต); (int i=1;i<=n;i++){
เสื้อ=t*10+n;
s=s+t;
System.out.println(t);
-
System.out.println(s);
-
-
[โปรแกรม 9] คำถาม: หากตัวเลขเท่ากับผลรวมของตัวประกอบทุกประการ จำนวนนั้นเรียกว่า "จำนวนสมบูรณ์" เช่น 6=1+2+3 โปรแกรมหาจำนวนสมบูรณ์ทั้งหมดภายใน 1,000
Wanshu คลาสสาธารณะ { โมฆะสาธารณะคงที่ main (String [] args)
{ int s; สำหรับ (int i=1;i<=1000;i++)
-
fs=o0r;(int j=1;j<i;j++) ถ้า(i % j==0)
ถ้า s=s+j; (s==i)
System.out.print(i+" ");
-
System.out.println();
-
-
[ขั้นตอนที่ 10] คำถาม: ลูกบอลตกลงมาจากความสูง 100 เมตรโดยอิสระ แต่ละครั้งกระทบพื้น ลูกบอลจะกระดอนกลับไปครึ่งหนึ่งของความสูงเดิมอีกครั้ง เมื่อกระทบรวมทั้งหมดกี่เมตร ลงดินเป็นครั้งที่ 10? การชุมนุมครั้งที่ 10 สูงแค่ไหน?
คลาสสาธารณะ Ex10 { โมฆะสาธารณะคงหลัก (สตริง [] args)
{ double s=0; double t=100; for(int i=1;i<=10;i++)
-
ส+=ที;
เสื้อ=t/2;
-
System.out.println(s);
System.out.println(t);
-
-
[ขั้นตอนที่ 11] คำถาม: มีตัวเลข 1, 2, 3 และ 4 จำนวนเท่าใดจึงจะสร้างตัวเลขสามหลักที่แตกต่างกันได้โดยไม่ต้องใช้ตัวเลขซ้ำกัน มีกี่คน?
1. วิเคราะห์โปรแกรม: ตัวเลขที่สามารถเติมได้หลักร้อย หลักสิบ และหลักคือ 1, 2, 3 และ 4 ทั้งหมด หลังจากเขียนการเรียงสับเปลี่ยนทั้งหมดแล้ว ให้ลบการเรียงสับเปลี่ยนที่ไม่ตรงตามเงื่อนไขออก
Wanshu คลาสสาธารณะ { โมฆะสาธารณะคงที่ main (String [] args)
{ int i=0; int j=0; int k=0; for(i=1;i<=4;i++) สำหรับ(j=1;j<=4;j++) สำหรับ(k =1;k<=4;k++) ถ้า(i!=j && j!=k && i!=k)
{t+=1;
System.out.println(i*100+j*10+k);
-
System.out.println (t);
-
-
[ขั้นตอนที่ 12] คำถาม: โบนัสที่ออกโดยบริษัทจะขึ้นอยู่กับค่าคอมมิชชั่นกำไร เมื่อกำไร (I) น้อยกว่าหรือเท่ากับ 100,000 หยวน โบนัสจะเพิ่มขึ้น 10% เมื่อกำไรมากกว่า 100,000 หยวนและน้อยกว่า 200,000 หยวน ส่วนที่น้อยกว่า 100,000 หยวนจะต้องเสีย 10% ค่าคอมมิชชัน และหากกำไรมากกว่า 100,000 หยวน โบนัสจะเป็น 10% สำหรับส่วนระหว่าง 200,000 ถึง 400,000 ค่าคอมมิชชั่นสามารถเป็น 7.5% สำหรับส่วนที่สูงกว่า 200,000 หยวน ค่าคอมมิชชั่นสามารถเป็น 5% ; เมื่อจำนวนเงินอยู่ระหว่าง 400,000 ถึง 600,000 หยวน ส่วนที่สูงกว่า 400,000 หยวนสามารถรับคอมมิชชันได้ที่ 3% และเมื่อจำนวนเงินมากกว่า 1 ล้านหยวน ค่าคอมมิชชันสามารถเป็น 1.5% ส่วนที่เกิน 1 ล้านหยวนจะต้องได้รับค่าคอมมิชชัน 1% ป้อนกำไร I ของเดือนจากแป้นพิมพ์
1. การวิเคราะห์โปรแกรม: โปรดใช้แกนตัวเลขเพื่อหารและค้นหา โปรดทราบว่าโบนัสจะต้องถูกกำหนดให้เป็นจำนวนเต็มเมื่อกำหนด
นำเข้า java .util.*; การทดสอบคลาสสาธารณะ { public static void main (String[]args){
ผลรวมสองเท่า;//ประกาศโบนัสที่จะออกในตัวแปรที่จะจัดเก็บ
อินพุตสแกนเนอร์ = สแกนเนอร์ใหม่ (System.in); // นำเข้าสแกนเนอร์
System.out.print ("ป้อนกำไรสำหรับเดือนปัจจุบัน");
double lirun=input .nextDouble();//ป้อนกำไรจากคอนโซล
ถ้า(ลิรัน<=100000){
ผลรวม=ลิรัน*0.1;
} อื่นถ้า (lirun<=200000){
ผลรวม=10,000+ลิรัน*0.075;
} อื่นถ้า (lirun<=400000){
ผลรวม=17500+ลิรัน*0.05;
} อื่นถ้า (lirun<=600000){
ผลรวม=ลิรัน*0.03;
} อื่นถ้า (lirun<=1000000){
ผลรวม=ลิรัน*0.015;
} อื่น{
ผลรวม=ลิรัน*0.01;
-
System.out.println("โบนัสที่ควรจะจ่ายคือ "+sum);
-
-
ผู้อ่านสามารถปรับปรุงโค้ดสำหรับสถานการณ์อื่นๆ ด้านล่างได้
【ขั้นตอนที่ 13】
คำถาม: จำนวนเต็มเมื่อบวก 100 จะกลายเป็นเลขกำลังสองสมบูรณ์ และเมื่อบวก 168 ก็จะกลายเป็นเลขกำลังสองสมบูรณ์
1. วิเคราะห์โปรแกรม : ตัดสินภายใน 100,000 ให้บวก 100 เข้ากับตัวเลขก่อนสั่ง แล้วบวก 268 เข้ากับตัวเลข แล้วจึงสั่งจ่าย หากผลหลังสั่งจ่ายเป็นไปตามเงื่อนไขต่อไปนี้คือผลลัพธ์ โปรดดูบทวิเคราะห์เฉพาะ:
การทดสอบคลาสสาธารณะ { โมฆะสาธารณะคงหลัก (สตริง [] args) {
ยาว k=0; for(k=1;k<=100000l;k++) if(Math.floor(Math.sqrt(k+100))==Math.sqrt(k+100) &&
Math.floor(Math.sqrt(k+168))==Math.sqrt(k+168))
System.out.println(k);
-
-
[โปรแกรม 14] คำถาม: กรอกปี เดือน และวันที่กำหนด แล้วพิจารณาว่าวันนี้เป็นวันอะไรของปี?
1. การวิเคราะห์โปรแกรม: ยกตัวอย่างวันที่ 5 มีนาคม คุณควรบวกสองเดือนก่อนหน้าแล้วบวกด้วย 5 วันซึ่งเป็นวันของปี สถานการณ์พิเศษ เช่น ปีอธิกสุรทินและเดือนที่ป้อนมากกว่า 3 ต้องพิจารณาเพิ่มอีกวัน
นำเข้า java.util.*; การทดสอบคลาสสาธารณะ { โมฆะสาธารณะหลัก (String [] args) { int month = 0; int sum = 0;
System.out.print("กรุณาระบุ ปี, เดือน, วัน/n");
อินพุตสแกนเนอร์ = สแกนเนอร์ใหม่ (System.in);
ปี=input.nextInt();
เดือน=input.nextInt();
วัน=input.nextInt();
switch(เดือน) /*คำนวณจำนวนวันทั้งหมดในเดือนก่อนหน้าก่อน*/
{กรณีที่ 1:
ผลรวม=0;แตก; กรณีที่ 2:
ผลรวม=31;แตก; กรณีที่ 3:
ผลรวม=59;แตก; กรณีที่ 4:
ผลรวม=90;แตก; กรณีที่ 5:
ผลรวม=120;แตก; กรณีที่ 6:
ผลรวม=151;แตก; กรณีที่ 7:
ผลรวม=181;แตก; กรณีที่ 8:
ผลรวม=212;แตก; กรณีที่ 9:
ผลรวม=243;ตัวแบ่ง; กรณีที่ 10:
ผลรวม=273;แตก; กรณีที่ 11:
ผลรวม=304;ตัวแบ่ง; กรณีที่ 12:
ผลรวม=334;แบ่ง; ค่าเริ่มต้น:
System.out.println("ข้อมูลผิดพลาด");แตก;
-
sum=sum+day; /*บวกจำนวนวันในวันที่ระบุ*/
if(year%400==0||(year%4==0&&year%100!=0))/*ตัดสินว่าเป็นปีอธิกสุรทิน*/
อย่างอื่น=1;
เผ่น=0;
if(leap==1 && month>2)/*หากเป็นปีอธิกสุรทินและเดือนมากกว่า 2 ให้บวกหนึ่งวันเข้ากับจำนวนวันทั้งหมด*/
ผลรวม++;
System.out.println("เป็นวันที่:"+sum);
-
-
[โปรแกรม 15] คำถาม: ใส่จำนวนเต็มสามตัว x, y, z โปรดพิมพ์ตัวเลขทั้งสามนี้จากเล็กไปใหญ่
1. การวิเคราะห์โปรแกรม: เราหาวิธีใส่จำนวนที่น้อยที่สุดบน x อันดับแรกเปรียบเทียบ x กับ y ถ้า x > y แล้วแลกเปลี่ยนค่าของ x และ y แล้วจึงเปรียบเทียบ x กับ z ถ้า x > z สลับค่าของ x และ z เพื่อให้สามารถย่อ x ให้เล็กสุดได้
นำเข้า java.util.*; การทดสอบคลาสสาธารณะ { สาธารณะคงเป็นโมฆะหลัก (String [] args) { int j = 0; int k = 0;
System.out.print("กรุณากรอกตัวเลขสามตัว/n");
อินพุตสแกนเนอร์ = สแกนเนอร์ใหม่ (System.in);
i=input.nextInt();
j=input.nextInt();
k=iifnput.nextInt(); (i>j)
-
x=ฉัน;
ฉัน=เจ;
เจ=x;
} ถ้า(i>k)
-
x=ฉัน;
ฉัน=k;
เค=x;
} ถ้า(j>k)
-
x=เจ;
เจ=เค;
เค=x;
-
System.out.println(i+", "+j+", "+k);
-
-
[โปรแกรม 16] คำถาม : สูตรผลลัพธ์ 9*9
1. การวิเคราะห์โปรแกรม: พิจารณาแถวและคอลัมน์ มีทั้งหมด 9 แถว และ 9 คอลัมน์ โดย i ควบคุมแถว และ j ควบคุมคอลัมน์
คลาสสาธารณะ jiujiu { โมฆะคงที่สาธารณะ main (String [] args)
{ int i=0; int j=0; สำหรับ(i=1;i<=9;i++)
{ สำหรับ(j=1;j<=9;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
-
-
ไม่รับสินค้าซ้ำ (สามเหลี่ยมล่าง)
คลาสสาธารณะ jiujiu { โมฆะสาธารณะคงหลัก (สตริง [] args)
{ int i=0; int j=0; สำหรับ(i=1;i<=9;i++)
{ สำหรับ(j=1;j<=i;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
-
-
สามเหลี่ยมด้านบน
คลาสสาธารณะ jiujiu { โมฆะคงที่สาธารณะ main (String [] args)
{ int i=0; int j=0; สำหรับ(i=1;i<=9;i++)
{ สำหรับ(j=i;j<=9;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
-
-
[ขั้นตอนที่ 17] หัวข้อ: ลิงกินลูกพีช ปัญหา: ลิงเก็บลูกพีชสองสามลูกในวันแรก กินไปครึ่งหนึ่งทันที และยังไม่พอใจ เขากินเพิ่มอีกหนึ่งลูกและกินลูกพีชที่เหลืออีกครึ่งหนึ่งในเช้าวันรุ่งขึ้น
กินอีกแล้ว. ตั้งแต่นั้นมา ทุกเช้าฉันจะกินครึ่งหนึ่งและอีกหนึ่งมื้อที่เหลือจากวันก่อนหน้า เมื่ออยากกินเพิ่มในเช้าวันที่ 10 เห็นว่าเหลือลูกพีชเพียงลูกเดียวเท่านั้น ค้นหาจำนวนที่ถูกเลือกในวันแรก
1. การวิเคราะห์โปรแกรม: ใช้วิธีคิดย้อนกลับและอนุมานจากหลังไปหน้า
ลิงชนชั้นสาธารณะกินลูกพีช{
int รวมคงที่ (int วัน) { ถ้า (วัน == 10) { กลับ 1;
}else{ ผลตอบแทน (รวม (วัน+1)+1)*2;
-
สาธารณะ s} tatic เป็นโมฆะหลัก (String [] args)
-
System.out.println (รวม (1));
-
[ขั้นตอนที่ 18] หัวข้อ: ทีมปิงปองสองทีมแข่งขันกัน แต่ละทีมมีผู้เล่นสามคน ทีม A ประกอบด้วยสามคน a, b และ c และทีม B ประกอบด้วยสามคน x, y และ z ได้มีการจับสลากเพื่อกำหนดรายการการแข่งขันแล้ว มีคนถามผู้เล่นเกี่ยวกับบัญชีรายชื่อของเกม a บอกว่าเขาไม่ได้แข่งกับ x และ c บอกว่าเขาไม่แข่งกับ x และ z โปรดเขียนโปรแกรมเพื่อค้นหารายชื่อผู้เล่นจากทั้งสามทีม
1. การวิเคราะห์โปรแกรม: วิธีตัดสินจำนวนเฉพาะ: ใช้ตัวเลขหาร 2 ถึง sqrt (ตัวเลขนี้) ตามลำดับ หากหารได้แสดงว่าจำนวนนั้นไม่ใช่จำนวนเฉพาะ ไม่เช่นนั้นจะเป็นจำนวนเฉพาะ
นำเข้า java.util.ArrayList; pingpang คลาสสาธารณะ {
pSutbrliincg sat,abt,icc; โมฆะหลัก (สตริง [] args) {
สตริง[] op = { "x", "y", "z" };
ArrayList<pingpang> arrayList=ใหม่ ArrayList<pingpang>(); for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) for (int k = 0; k < 3 ; k++) {
pingpang a=ใหม่ pingpang(op[i],op[j],op[k]); if(!aaequals(ab)&&!abequals(ac)&&!aaequals("x")
&&!acequals("x")&&!acequals("z")){
arrayList.add(ก);
-
สำหรับ}(วัตถุ a:arrayList){
System.out.println(ก);
-
} pingpang สาธารณะ (สตริง a, สตริง b, สตริง c) { super(); this.a = a; this.b = b;
-
@pOubvelircride สตริง toString() {
// TODO ต้นขั้ววิธีการสร้างอัตโนมัติ
return "คู่ต่อสู้ของ a คือ "+a+", "+"คู่ต่อสู้ของ b คือ "+b+", "+"คู่ต่อสู้ของ c คือ "+c+"/n";
-
-
【โปรแกรม 19】หัวข้อ: พิมพ์รูปแบบต่อไปนี้ (เพชร)
-
-
-
-
-
-
-
1. การวิเคราะห์โปรแกรม: ขั้นแรก แบ่งกราฟออกเป็นสองส่วน สี่แถวแรกมีหนึ่งกฎ และสามแถวสุดท้ายมีหนึ่งกฎ ใช้ double สำหรับลูป เลเยอร์แรกควบคุมแถว และเลเยอร์ที่สองควบคุมคอลัมน์ .
สามเหลี่ยม:
StartG ระดับสาธารณะ { โมฆะสาธารณะคงหลัก (สตริง [] args)
{ int i=0; int j=0; สำหรับ(i=1;i<=4;i++)
{ สำหรับ(j=1;j<=2*i-1;j++)
System.out.print("*");
System.out.println("");
}สำหรับ(i=4;i>=1;i--)
{ สำหรับ(j=1;j<=2*i-3;j++)
System.out.print("*");
System.out.println("");
-
-
-
เพชร:
StartG ระดับสาธารณะ { โมฆะสาธารณะคงหลัก (สตริง [] args)
{ int i=0; int j=0;
สำหรับ(i=1;i<=4;i++)
{ สำหรับ(int k=1; k<=4-i;k++)
System.out สำหรับ .print(" "); (j=1;j<=2*i-1;j++)
System.out.print("*");
System.out.println("");
}สำหรับ(i=4;i>=1;i--)
{ สำหรับ(int k=1; k<=5-i;k++)
สำหรับ System.out.print(" "); (j=1;j<=2*i-3;j++)
System.out.print("*");
System.out.println("");
-
-
-
[ขั้นตอนที่ 20] คำถาม: มีเศษส่วนเป็นลำดับ: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13... จงหาผลรวมของ 20 รายการแรกของลำดับนี้ .
1. การวิเคราะห์โปรแกรม: โปรดเข้าใจกฎการเปลี่ยนแปลงของตัวเศษและตัวส่วน
คลาสสาธารณะ test20 { สาธารณะคงเป็นโมฆะ main (String [] args) { float fm = 1f; float fz = 1f; float sum = 0f; for (int i = 0; i <20; i ++) {
อุณหภูมิ = เอฟเอ็ม;
เอฟเอ็ม = fz;
fz = fz + อุณหภูมิ;
ผลรวม += fz/fm;
//System.out.println(ผลรวม);
-
System.out.println (ผลรวม);
-
-
[โปรแกรม 21] คำถาม: หาผลรวมของ 1+2!+3!+...+20!
1. การวิเคราะห์โปรแกรม: โปรแกรมนี้เพียงเปลี่ยนการสะสมเป็นการคูณสะสม
คลาสสาธารณะ Ex21 { ผลรวมแบบยาวคงที่ = 0; fac แบบคงที่สาธารณะ หลัก (String [] args) { ผลรวมแบบยาว = 0; for (int i = 1; i <= 10; i ++ ) {
fac = fac * i;
ผลรวม += หน้า;
-
System.out.println (ผลรวม);
-
[โปรแกรม 22] หัวข้อ: ใช้วิธีเรียกซ้ำเพื่อค้นหา 5!.
1. การวิเคราะห์โปรแกรม: สูตรเรียกซ้ำ: fn=fn_1*4!
นำเข้า java.util.Scanner; คลาสสาธารณะ Ex22 { โมฆะสาธารณะหลัก (สตริง [] args) {
เครื่องสแกนเนอร์ s = เครื่องสแกนเนอร์ใหม่ (System.in);
Ex22 tfr = ใหม่ Ex22();
System.out.println(tfr.recursion(n));
-
การเรียกซ้ำแบบสาธารณะ (int n) { ค่ายาว = 0; ถ้า (n ==1 || n == 0) {
ค่า = 1;
} อื่นถ้า(n > 1) {
ค่า = n * การเรียกซ้ำ (n-1);
} มูลค่าส่งคืน;
-
[ขั้นตอนที่ 23] คำถาม: มี 5 คนนั่งด้วยกันคนที่ห้าอายุเท่าไหร่? เขาบอกว่าเขาแก่กว่าคนที่ 4 2 ปี พอถามคนที่ 4 อายุเท่าไหร่ ก็บอกว่าแก่กว่าคนที่ 3 2 ปี ฉันถามบุคคลที่สามและเขาบอกว่าเขาแก่กว่าคนที่สองสองปี ถามคนที่สองก็บอกว่าเขาแก่กว่าคนแรกสองปี สุดท้ายผมถามคนแรกเขาบอกว่าเขาอายุ 10 ขวบ คนที่ห้าอายุเท่าไหร่?
1. การวิเคราะห์โปรแกรม: การใช้วิธีเรียกซ้ำ การเรียกซ้ำจะแบ่งออกเป็นสองขั้นตอน: การย้อนรอยและการเรียกซ้ำ หากต้องการทราบอายุของบุคคลที่ห้า จะต้องทราบอายุของบุคคลที่สี่ เป็นต้น จนถึงคนแรก (อายุ 10 ปี)
ดันกลับมาอีกครั้ง
คลาสสาธารณะ Ex23 { คงที่ int getAge (int n) { ถ้า (n == 1) { กลับ 10;
} ส่งคืน 2 + getAge(n-1);
} โมฆะสาธารณะคงหลัก (สตริง [] args) {
System.out.println("ยุคที่ห้าคือ:"+getAge(5));
-
-
[โปรแกรม 24] คำถาม เมื่อกำหนดให้เป็นจำนวนเต็มบวกไม่เกิน 5 หลัก ข้อกำหนดคือ 1. หาว่ามีกี่หลัก 2. พิมพ์ตัวเลขกลับกัน
นำเข้า java.util.Scanner; คลาสสาธารณะ Ex24 { โมฆะสาธารณะหลัก (สตริง [] args) {
Ex24 tn = ใหม่ Ex24();
เครื่องสแกนเนอร์ s = เครื่องสแกนเนอร์ใหม่ (System.in); long a = s.nextLong (); if (a < 0 || a > 100000) {
System.out.println("เกิดข้อผิดพลาด กรุณารันโปรแกรมนี้อีกครั้ง");
System.ออก(0);
}ถ้า(ก >=0 && ก <=9) {
System.out.println( a + "เป็นตัวเลขหลักเดียว");
System.out.println("เอาต์พุตในลำดับย้อนกลับคือ " + '/n' + a);
} อื่นถ้า(a >= 10 && a <= 99) {
System.out.println(a + "เป็นตัวเลขสองหลัก");
System.out.println("ผลลัพธ์ในลำดับย้อนกลับคือ" );
tn.สนทนา(ก);
} อื่นถ้า(a >= 100 && a <= 999) {
System.out.println(a + "เป็นตัวเลขสามหลัก");
System.out.println("ผลลัพธ์ในลำดับย้อนกลับคือ" );
tn.สนทนา(ก);
} อื่นถ้า(a >= 1,000 && a <= 9999) {
System.out.println(a + "เป็นตัวเลขสี่หลัก");
System.out.println("ผลลัพธ์ในลำดับย้อนกลับคือ" );
tn.สนทนา(ก);
} อื่นถ้า(a >= 10,000 && a <= 99999) {
System.out.println(a + "เป็นตัวเลขห้าหลัก");
System.out.println("ผลลัพธ์ในลำดับย้อนกลับคือ" );
tn.สนทนา(ก);
-
} การสนทนาโมฆะสาธารณะ (ยาว l) {
สตริง s = Long.toString ถ่าน (l); [] ch = s.toCharArray(); สำหรับ (int i=ch.length-1; i>=0; i--) {
System.out.print(ch[i]);
-
-
[โปรแกรม 25] คำถาม: ตัวเลข 5 หลัก พิจารณาว่าเป็นเลขพาลินโดรมหรือไม่ นั่นคือ 12321 เป็นเลขพาลินโดรม หลักหน่วยเท่ากับหลักพัน และหลักสิบเท่ากับหลักพัน
นำเข้า java.util.Scanner; คลาสสาธารณะ Ex25 { int แบบคงที่ [] a = int แบบคงที่ [] b = int สาธารณะแบบคงที่ main (String [] args) { บูลีนคือ = false ;
เครื่องสแกนเนอร์ s = เครื่องสแกนเนอร์ใหม่ (System.in); long l = s.nextLong (); if (l > 99999 || l < 10,000) {
System.out.println("การป้อนข้อมูลผิดพลาด กรุณาป้อนข้อมูลอีกครั้ง!");
l = s.nextLong();
}สำหรับ (int i = 4; i >= 0; i--) { a[i] = (int) (l / (ยาว) Math.pow(10, i));
l =(l % (ยาว) Math.pow(10, i));
-
Sfyosrtem.out.println(); (int i=0,j=0; i<5; i++, j++) {
ข[เจ] = มี[ฉัน];
}สำหรับ(int i=0,j=4; i<5; i++, j--) { if(a[i] != b[j]) {
คือ = เท็จ;
} อื่น {
คือ = จริง;
-
} ถ้า(เป็น == เท็จ) {
System.out.println("ไม่ใช่ Palindrom!");
} อื่นถ้า (เป็น == จริง) {
System.out.println("คือ Palindrom!");
-
-
[โปรแกรม 26] คำถาม: กรุณากรอกตัวอักษรตัวแรกของวันในสัปดาห์เพื่อกำหนดวันในสัปดาห์ ถ้าตัวอักษรตัวแรกเหมือนกัน ให้กำหนดตัวอักษรตัวที่สองต่อไป
1. การวิเคราะห์โปรแกรม: ควรใช้คำสั่งสถานการณ์หากตัวอักษรตัวแรกเหมือนกัน ให้ใช้คำสั่งสถานการณ์หรือคำสั่ง if เพื่อตัดสินตัวอักษรตัวที่สอง
นำเข้า java.util.Scanner; คลาสสาธารณะ Ex26 { โมฆะสาธารณะหลัก (String [] args) {
//บันทึกตัวอักษรตัวที่สองที่ผู้ใช้ป้อน
ถ่านสัปดาห์ที่สอง;
//สร้างตัวอย่างคลาส Scanner เป็นออบเจ็กต์อินพุตสำหรับรับอินพุตจากผู้ใช้
อินพุตสแกนเนอร์ = สแกนเนอร์ใหม่ (System.in);
//เริ่มพร้อมท์และรับอินพุตคอนโซลผู้ใช้
System.out.print("กรุณากรอกตัวอักษรตัวแรกของค่าสัปดาห์เป็นภาษาอังกฤษ แล้วฉันจะช่วยคุณกำหนดวันในสัปดาห์:");
ตัวอักษรสตริง = input.next();
//ตรวจสอบว่าความยาวของสตริงอินพุตคอนโซลผู้ใช้เป็นตัวอักษรหนึ่งตัวหรือไม่
ถ้า (letter.length() == 1){
//ใช้อักขระที่รับบิตดัชนีแรกเพื่อให้ Scanner รับอินพุตประเภทอักขระ
ถ่าน weekFirst = letter.charAt (0); สวิตช์ (weekFirst) { กรณี 'm':
// เมื่อป้อนตัวอักษรตัวพิมพ์เล็ก ให้ใช้คุณสมบัติโครงสร้างสวิตช์เพื่อดำเนินการสาขาตัวพิมพ์ถัดไปด้วยคำสั่งตัวแบ่งเพื่อใช้ฟังก์ชันโดยไม่สนใจความอ่อนไหวของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของอินพุตคอนโซลผู้ใช้
กรณี 'ม':
System.out.println("วันจันทร์");
แตก; กรณี 't':
// เมื่อป้อนตัวอักษรตัวพิมพ์เล็ก ให้ใช้คุณสมบัติโครงสร้างสวิตช์เพื่อดำเนินการสาขาตัวพิมพ์ถัดไปด้วยคำสั่งตัวแบ่งเพื่อใช้ฟังก์ชันโดยไม่สนใจความอ่อนไหวของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของอินพุตคอนโซลผู้ใช้
กรณี 'ท':
System.out.print("ตั้งแต่วันอังคาร (อังคาร) และพฤหัสบดี (พฤหัสบดี) ทั้งคู่ขึ้นต้นด้วยตัวอักษร T คุณต้องป้อนตัวอักษรตัวที่สองเพื่อตัดสินอย่างถูกต้อง: ");
ตัวอักษร = input.next();
//ตรวจสอบว่าความยาวของสตริงอินพุตคอนโซลผู้ใช้เป็นตัวอักษรหนึ่งตัวหรือไม่
ถ้า (letter.length() == 1){
//ใช้อักขระที่รับบิตดัชนีแรกเพื่อให้ Scanner รับอินพุตประเภทอักขระ
weekSecond = letter.charAt(0);
//ใช้ตัวดำเนินการหรือ (||) เพื่อใช้ฟังก์ชันโดยไม่สนใจตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของอินพุตคอนโซลผู้ใช้
ถ้า (weekSecond == 'U' || สัปดาห์ที่สอง == 'u'){
System.out.println("วันอังคาร");
หยุดพัก;
//ใช้ตัวดำเนินการหรือ (||) เพื่อใช้ฟังก์ชันโดยไม่สนใจตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของอินพุตคอนโซลผู้ใช้
} อื่น ๆ ถ้า (weekSecond == 'H' || weekSecond == 'h'){
System.out.println("วันพฤหัสบดี");
หยุดพัก;
//ข้อความแสดงข้อผิดพลาดของคอนโซล
} อื่น{
System.out.println("ข้อผิดพลาดในการป้อนข้อมูล ไม่สามารถรับรู้ตัวอักษรตัวที่สองของค่าสัปดาห์ โปรแกรมสิ้นสุด!");
หยุดพัก;
-
} อื่น {
//ข้อความแสดงข้อผิดพลาดของคอนโซล
System.out.println("อินพุตผิดพลาด สามารถป้อนตัวอักษรได้เพียงตัวเดียว โปรแกรมสิ้นสุด!");
หยุดพัก;
ca} se 'w':
// เมื่อป้อนตัวอักษรตัวพิมพ์เล็ก ให้ใช้คุณสมบัติโครงสร้างสวิตช์เพื่อดำเนินการสาขาตัวพิมพ์ถัดไปด้วยคำสั่งตัวแบ่งเพื่อใช้ฟังก์ชันโดยไม่สนใจความอ่อนไหวของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของอินพุตคอนโซลผู้ใช้
กรณี 'W':
System.out.println("วันพุธ");
แตก; กรณี 'f':
// เมื่อป้อนตัวอักษรตัวพิมพ์เล็ก ให้ใช้คุณสมบัติโครงสร้างสวิตช์เพื่อดำเนินการสาขาตัวพิมพ์ถัดไปด้วยคำสั่งตัวแบ่งเพื่อใช้ฟังก์ชันโดยไม่สนใจความอ่อนไหวของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของอินพุตคอนโซลผู้ใช้
กรณี 'ฉ':
System.out.println("วันศุกร์");
แตก; กรณี 's':
// เมื่อป้อนตัวอักษรตัวพิมพ์เล็ก ให้ใช้คุณสมบัติโครงสร้างสวิตช์เพื่อดำเนินการสาขาตัวพิมพ์ถัดไปด้วยคำสั่งตัวแบ่งเพื่อใช้ฟังก์ชันโดยไม่สนใจความอ่อนไหวของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของอินพุตคอนโซลผู้ใช้
กรณี 'S':
System.out.print("ตั้งแต่วันเสาร์ (วันเสาร์) และวันอาทิตย์ (วันอาทิตย์) เริ่มต้นด้วยตัวอักษร S คุณต้องป้อนตัวอักษรตัวที่สองเพื่อตัดสินอย่างถูกต้อง: ");
ตัวอักษร = input.next();
//ตรวจสอบว่าความยาวของสตริงอินพุตคอนโซลผู้ใช้เป็นตัวอักษรหนึ่งตัวหรือไม่
ถ้า (letter.length() == 1){
//ใช้อักขระที่รับบิตดัชนีแรกเพื่อให้ Scanner รับอินพุตประเภทอักขระ
weekSecond = letter.charAt(0);
//ใช้ตัวดำเนินการหรือ (||) เพื่อใช้ฟังก์ชันโดยไม่สนใจตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของอินพุตคอนโซลผู้ใช้
ถ้า (weekSecond == 'A' || สัปดาห์ที่สอง == 'a'){
System.out.println("วันเสาร์");
หยุดพัก;
//ใช้ตัวดำเนินการหรือ (||) เพื่อใช้ฟังก์ชันโดยไม่สนใจตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของอินพุตคอนโซลผู้ใช้
} อื่นถ้า (weekSecond == 'U' || weekSecond == 'u'){
System.out.println("วันอาทิตย์");
หยุดพัก;
//ข้อความแสดงข้อผิดพลาดของคอนโซล
} อื่น{
System.out.println("ข้อผิดพลาดในการป้อนข้อมูล ไม่สามารถรับรู้ตัวอักษรตัวที่สองของค่าสัปดาห์ โปรแกรมสิ้นสุด!");
หยุดพัก;
-
} อื่น{
//ข้อความแสดงข้อผิดพลาดของคอนโซล
System.out.println("อินพุตผิดพลาด สามารถป้อนตัวอักษรได้เพียงตัวเดียว โปรแกรมสิ้นสุด!");
หยุดพัก;
ค่าเริ่มต้น:
//ข้อความแสดงข้อผิดพลาดของคอนโซล
System.out.println("ข้อผิดพลาดอินพุต, ไม่รู้จักตัวอักษรตัวแรกของค่าสัปดาห์, โปรแกรมสิ้นสุด!");
หยุดพัก;
-
} อื่น{
//ข้อความแสดงข้อผิดพลาดของคอนโซล
System.out.println("อินพุตผิดพลาด สามารถป้อนตัวอักษรได้เพียงตัวเดียว โปรแกรมสิ้นสุด!");
-
-
-
[โปรแกรม 27] หัวข้อ หาจำนวนเฉพาะภายใน 100
คลาสสาธารณะ Ex27 { โมฆะสาธารณะคงหลัก (String args [])
{int sum,i; for(sum=2;sum<=100;sum++)
{for(i=2;i<=sum/2;i++)
{if(sum%i==0) พัง;
} ถ้า(i>ผลรวม/2)
System.out.println(sum+"เป็นจำนวนเฉพาะ");
-
-
-
[โปรแกรม 28] หัวข้อ เรียงเลข 10 ตัว
1. การวิเคราะห์โปรแกรม: คุณสามารถใช้วิธีการเลือกได้ นั่นคือจากกระบวนการเปรียบเทียบ 9 รายการล่าสุด ให้เลือกกระบวนการที่เล็กที่สุดเพื่อแลกเปลี่ยนกับองค์ประกอบแรก โดยการเปรียบเทียบในครั้งต่อไป ให้ใช้องค์ประกอบที่สองเพื่อเปรียบเทียบกับ 8 องค์ประกอบสุดท้าย และ แลกเปลี่ยนพวกเขา
นำเข้า java.util.Arrays; นำเข้า java.util.Random; นำเข้า java.util.Scanner; คลาสสาธารณะ Ex28 { สาธารณะคงโมฆะ main (String [] args) { int arr [] = new int [11];
สุ่ม r=ใหม่ สุ่ม(); สำหรับ(int i=0;i<10;i++){
arr[i]=r.nextInt(100)+1;//รับ 10 จำนวนเต็มภายใน 100
-
Arrays.sort สำหรับ (arr); (int i=0;i<arr.length;i++){
System.out.print(arr[i]+"/t");
-
System.out.print("/nPlease ใส่หมายเลข int: ");
สแกนเนอร์ sc=สแกนเนอร์ใหม่ (System.in);
arr[10]=sc.nextInt();//ป้อนค่า int
Aflorrays.sort(arr); (int i=0;i<arr.length;i++){
System.out.print(arr[i]+"/t");
-
-
-
[โปรแกรม 29] คำถาม: จงหาผลรวมขององค์ประกอบเส้นทแยงมุมของเมทริกซ์ขนาด 3*3
1. การวิเคราะห์โปรแกรม: ใช้ double for loops เพื่อควบคุมอินพุตของอาร์เรย์สองมิติ จากนั้นสะสม a[i][i] แล้วส่งออกเอาต์พุต
คลาสสาธารณะ Ex29 { โมฆะสาธารณะหลัก (สตริง [] args) { ผลรวมสองเท่า = 0; int array [] = {{1,2,3}, {4,5, 6}, {7,7,8 }}; for(int i=0;i<3;i++) สำหรับ(int j=0;j<3;j++){ ถ้า(i==j)
ผลรวม=ผลรวม + อาร์เรย์[i][j];
-
System.out.println (ผลรวม);
-
-
[โปรแกรม 30] คำถาม: มีอาร์เรย์ที่ถูกจัดเรียงแล้ว ตอนนี้ให้ป้อนตัวเลขและแทรกลงในอาร์เรย์ตามกฎเดิม
1. การวิเคราะห์โปรแกรม: ขั้นแรกให้พิจารณาว่าตัวเลขนี้มากกว่าตัวเลขสุดท้ายหรือไม่ แล้วจึงพิจารณาใส่ตัวเลขตรงกลาง หลังจากการแทรก ตัวเลขหลังจากองค์ประกอบนี้จะถูกย้ายกลับไปหนึ่งตำแหน่ง
นำเข้า java.util.Random; ArraySort คลาสสาธารณะ { โมฆะสาธารณะหลัก (String [] args)
{ int temp=0; int myarr[] = ใหม่ int[12];
สุ่ม r=ใหม่ สุ่ม(); สำหรับ(int i=1;i<=10;i++)
fomryarr[i]=r.nextInt(1000); (int k=1;k<=10;k++)
fSoyrstem.out.print(myarr[k]+","); (int i=1;i<=9;i++) สำหรับ(int k=i+1;k<=10;k++) ถ้า(myarr[i ]>เมียรร์[k])
-
อุณหภูมิ=myarr[i];
myarr[i]=myarr[k];
myarr[k]=อุณหภูมิ;
-
fSoyrstem.out.println(""); (int k=1;k<=10;k++)
System.out.print(myarr[k]+",");
fmoyarrr[11]=r.nextInt(1000); (int k=1;k<=10;k++) ถ้า(myarr[k]>myarr[11])
-
fteomrp=myarr[11]; (int j=11;j>=k+1;j--)
myarr[j]=myarr[j-1];
myarr[k]=อุณหภูมิ;
-
forSystem.out.println(""); (int k=1;k<=11;k++)
System.out.print(myarr[k]+",");
-
-
[โปรแกรม 31] หัวข้อ: เอาต์พุตอาร์เรย์ในลำดับย้อนกลับ
การวิเคราะห์โปรแกรม: สลับอันแรกและอันสุดท้าย
ที่จริงแล้ว การควบคุมตัวแปรด้วยการวนซ้ำทำได้ง่ายกว่า:
สำหรับ(int k=11;k>=1;k--)
System.out.print(myarr[k]+",");
[โปรแกรม 32] หัวข้อ: นำจำนวนเต็ม 4 ถึง 7 หลัก a โดยเริ่มจากด้านขวาสุด
การวิเคราะห์โปรแกรม: คุณสามารถคิดได้ดังนี้:
(1) ขั้นแรกให้เลื่อน a ไปทางขวา 4 บิต
(2) ตั้งค่าตัวเลขโดยให้ 4 บิตล่างเป็น 1 ทั้งหมด และส่วนที่เหลือเป็น 0 ทั้งหมด มีจำหน่าย~(~0 < <4)
(3) ดำเนินการและดำเนินการตามสองข้อข้างต้น
คลาสสาธารณะ Ex32 { โมฆะสาธารณะคงหลัก (สตริง [] args)
{ int a=0; ยาว b=18745678;
a=(int) Math.floor(b % Math.pow(10,7)/Math.pow(10, 3));
System.out.println(ก);
-
【โปรแกรม 33】
คำถาม: พิมพ์รูปสามเหลี่ยมของ Yang Hui (ต้องพิมพ์ออกมา 10 บรรทัดดังรูปด้านล่าง)
1. การวิเคราะห์โปรแกรม:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
คลาสสาธารณะ Ex33 { โมฆะสาธารณะคงหลัก (String args []) { int i,j;
a=ใหม่ int[8][8]; สำหรับ(i=0;i<8;i++){
ก[i][i]=1;
ก[i][0]=1;
for}(i=2;i<8;i++){ for(j=1;j<=i-1;j++){
a[i][j]=a[i-1][j-1]+a[i-1][j];
-
}สำหรับ(i=0;i<8;i++){ สำหรับ(j=0;j<i;j++){
System.out.printf(" "+a[i][j]);
-
System.out.println();
-
-
-
[โปรแกรม 34] คำถาม: ใส่ตัวเลข a, b, c 3 ตัว แล้วส่งออกตามลำดับขนาด
1. การวิเคราะห์โปรแกรม: การใช้วิธีพอยน์เตอร์
คลาสสาธารณะ Ex34 { โมฆะสาธารณะคงหลัก (สตริง [] args)
{int []arrays = {800,56,500}; for(int i=arrays.length;--i>=0;)
{for(int j=0;j<i;j++)
{if(อาร์เรย์[j]>อาร์เรย์[j+1])
{int temp=arrays[j];
อาร์เรย์[เจ]=อาร์เรย์[เจ+1];
อาร์เรย์[j+1]=อุณหภูมิ;
}}} สำหรับ(int n=0;n<arrays.length;n++)
System.out.println(อาร์เรย์[n]);
-
-
[โปรแกรม 35] หัวข้อ: ป้อนอาร์เรย์ แลกเปลี่ยนองค์ประกอบที่ใหญ่ที่สุดกับองค์ประกอบแรก แลกเปลี่ยนองค์ประกอบที่เล็กที่สุดกับองค์ประกอบสุดท้าย และส่งออกอาร์เรย์
นำเข้า java.util.*; public class Ex35 { public static void main(String[] args) { int i, min, max, n, temp1, temp2;
System.out.println("ป้อนความยาวของอาร์เรย์:");
แป้นพิมพ์สแกนเนอร์ = สแกนเนอร์ใหม่ (System.in);
n = คีย์บอร์ด.nextInt();
a = int ใหม่ [n]; สำหรับ (i = 0; i < n; i ++) {
System.out.print("ป้อน "th" + (i + 1) + "data");
a[i] = คีย์บอร์ด.nextInt();
-
//ด้านบนนี้เป็นอินพุตของอาร์เรย์ทั้งหมด
สูงสุด = 0;
นาที = 0;
//ตั้งค่าสถานะสองอัน โดยเริ่มจากทั้งสองอันชี้ไปที่หมายเลขแรก
สำหรับ (i = 1; i < n; i++) { ถ้า (a[i] > a[สูงสุด])
max = i; //สำรวจอาร์เรย์ ถ้ามันมากกว่า a[max] ให้กำหนดตัวห้อยอาร์เรย์เป็นค่าสูงสุด
ถ้า (ก[i] <ก[นาที])
min = i; //เหมือนกับข้างบน ถ้าน้อยกว่า a[min] ให้กำหนด array subscript ให้กับ min
-
// ด้านบนสำหรับลูปค้นหาค่าสูงสุดและต่ำสุด, max คือตัวห้อยของค่าสูงสุด, min คือตัวห้อยของค่าต่ำสุด
temp1 = a[0];
temp2 = a[min]; //อุณหภูมิทั้งสองนี้ใช้สำหรับการแลกเปลี่ยนเท่านั้น
มี[0] = มี[สูงสุด];
a[max] = temp1; //ขั้นแรกให้แลกเปลี่ยน a[0] และค่าสูงสุด a[max]
if (min != 0) { //หากค่าต่ำสุดไม่ใช่ [0] ให้ดำเนินการดังต่อไปนี้
ก[นาที] = ก[n - 1];
a[n - 1] = temp2; //แลกเปลี่ยน a[min] และ a[n-1]
} else { //หากค่าต่ำสุดคือ a[0] ให้ดำเนินการดังต่อไปนี้
ก[สูงสุด] = ก[n - 1];
a[n - 1] = temp1;
-
สำหรับ (i = 0; i <n; i++) { //Output array
System.out.print(a[i] + " ");
-
[โปรแกรม 36] คำถาม: มี n จำนวนเต็ม ดังนั้นตัวเลขก่อนหน้าจะเลื่อนไปข้างหลังด้วยตำแหน่ง m และตัวเลข m สุดท้ายจะกลายเป็นตัวเลข m ตัวแรก [โปรแกรม 37]
คำถาม: มีคน n นั่งเป็นวงกลมและนับพวกเขาตามลำดับ เริ่มนับจากบุคคลแรก (นับจาก 1 ถึง 3)
นำเข้า java.util.scanner;
สแกนเนอร์ S = ใหม่สแกนเนอร์ (System.in); int n = s.nextint ();
arr [i] = true; // เมื่อตัวห้อยเป็นจริงมันหมายความว่ามันยังอยู่ในวงกลม
} int leftCount = n;
if (arr [arr [index] == true) {// เมื่ออยู่ในวงกลม
CountNum ++;
if (countNum == 3) {// เมื่อรายงาน 3
countNum = 0; // ต่อนับจากศูนย์ดำเนินการต่อ
arr [ดัชนี] = false; // บุคคลนี้ออกจากวงกลม
LightCount -; // จำนวนคนที่เหลือจะลดลงหนึ่งคน
-
-
ดัชนี ++; // ทุกครั้งที่มีการรายงานตัวเลขตัวห้อยจะเพิ่มขึ้นหนึ่งครั้ง
ถ้า (index == n) {// มันเป็นจำนวนวงกลม
index = 0; // ตั้งค่าดัชนีเป็นศูนย์และเริ่มต้นอีกครั้ง
-
} สำหรับ (int i = 0; i <n; i ++) {ถ้า (arr [i] == true) {
System.out.println(i);
-
-
-
-
【โปรแกรม 38 】
คำถาม: เขียนฟังก์ชั่นเพื่อค้นหาความยาวของสตริง
นำเข้า java.util.scanner;
-
สแกนเนอร์ S = เครื่องสแกนใหม่ (System.in);
System.out.println("กรุณาระบุสตริง");
สตริง mys = s.next ();
System.out.println (str_len (mys));
} สาธารณะคงที่ int str_len (สตริง x)
{return x.length ();
-
-
คำถาม: เขียนฟังก์ชั่น 1+1/3+.. .+1/n
【โปรแกรม 39 】
หัวข้อ: การเรียงลำดับสตริง
นำเข้า Java.util.*;
-
ArrayList <String> list = new ArrayList <String> ();
list.add ("010101");
list.add ("010003");
list.add ("010201");
collections.sort สำหรับ (รายการ) (int i = 0; i <list.size (); i ++) {
System.out.println (list.get (i));
-
【โปรแกรม 40 】
หัวข้อ: มีลูกพีชมากมายบนชายหาดและลิงห้าตัวต้องแบ่งพวกเขา ลิงตัวแรกแบ่งกองลูกพีชออกเป็นห้าส่วน ลิงตัวที่สองแบ่งลูกพีชที่เหลือออกเป็นห้าส่วนและมีอีกหนึ่งชิ้น ที่ชายหาด?
ชั้นเรียนสาธารณะ dg {
int int ts = 0; // จำนวนลูกพีชทั้งหมด
int fs = 1; // บันทึกจำนวนคะแนน
int คง int hs = 5; // จำนวนลิง ...
int tsscope = 5000;
สาธารณะ int ft (int t) {ถ้า (t == tsscope) {
// ยกเลิกการเรียกซ้ำเมื่อจำนวนลูกพีชถึงช่วงค่าสูงสุด
System.out.println ("end");
กลับ 0;
} else {ถ้า ((t-1)%hs == 0 && fs <= hs) {ถ้า (fs == hs)
-
System.out.println ("เงื่อนไขการหารพีชจะตรงตามจำนวนลูกพีช =" +ts +"");
-
fs+= 1;
return ft ((t-1)/5*4); // ส่งคืนจำนวนเงินทั้งหมดที่เหลือหลังจากลิงใช้หนึ่งชิ้น
}อื่น
-
// เงื่อนไขไม่เป็นไปตาม
FS = 1;
return ft (ts += 1); // เพิ่ม +1 กับจำนวนลูกพีช
-
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {ใหม่ dg (). ft (0);
-
-