[الإجراء 1] العنوان: المشكلة الكلاسيكية: هناك زوج من الأرانب، ينجبون زوجًا من الأرانب كل شهر من الشهر الثالث بعد الولادة، وبعد أن ينمو الأرنب إلى الشهر الرابع، يلد زوجًا من الأرانب إذا كانت الأرانب لم تموت كل شهر، فما هو إجمالي عدد الأرانب كل شهر؟
1. تحليل البرنامج: نمط الأرانب هو التسلسل 1،1،2،3،5،8،13،21....
public class exp2{ public static void main(String args[]){ int i=0 for(i=1;i<=20;i++)
System.out.println(f(i));
}كثافة العمليات العامة الثابتة f(int x)
{ if(x==1 || x==2) return 1;
إرجاع f(x-1)+f(x-2);
}
}
أو
public class exp2{ public static void main(String args[]){ int i=0;
الرياضيات mymath = الرياضيات الجديدة () ؛ for(i=1;i<=20;i++)
System.out.println(mymath.f(i));
}
}صف الرياضيات
{ كثافة العمليات العامة و (كثافة العمليات س)
{ if(x==1 || x==2) return 1;
إرجاع f(x-1)+f(x-2);
}
}
[البرنامج 2] سؤال: تحديد عدد الأعداد الأولية الموجودة بين 101-200، وإخراج جميع الأعداد الأولية.
1. تحليل البرنامج: كيفية تحديد الأعداد الأولية: استخدم رقمًا لتقسيم 2 إلى sqrt (هذا الرقم) على التوالي، إذا كان من الممكن تقسيمه.
وهذا يعني أن هذا الرقم ليس عددا أوليا، وإلا فهو عدد أولي.
public class exp2{ public static void main(String args[]){ int i=0;
الرياضيات mymath = الرياضيات الجديدة ()؛ for(i=2;i<=200;i++) if(mymath.iszhishu(i)==true)
System.out.println(i);
}
}صف الرياضيات
{ كثافة العمليات العامة و (كثافة العمليات س)
{ if(x==1 || x==2) return 1;
إرجاع f(x-1)+f(x-2);
} iszhishu المنطقية العامة (int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0) return false;
}
}
[الإجراء 3] العنوان: اطبع جميع "أرقام النرجس". يشير ما يسمى بـ "رقم النرجس" إلى رقم مكون من ثلاثة أرقام يساوي مجموع مكعبه الرقم نفسه. على سبيل المثال: 153 هو "عدد نرجس" لأن 153=1 مكعب + 5 مكعب + 3 مكعب.
1. تحليل البرنامج: استخدم حلقة for للتحكم في الأرقام من 100 إلى 999، وقم بتحليل كل رقم إلى وحدات وعشرات ومئات.
الطبقة العامة exp2 {
public static void main(String args[]){ int i=0;
الرياضيات mymath = الرياضيات الجديدة ()؛ for(i=100;i<=999;i++) if(mymath.shuixianhua(i)==true)
System.out.println(i);
}
}صف الرياضيات
{ كثافة العمليات العامة و (كثافة العمليات س)
{ if(x==1 || x==2) return 1;
إرجاع f(x-1)+f(x-2);
} iszhishu المنطقية العامة (int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0) return false;
}shuixianhua المنطقية العامة (int x)
{ int i=0,j=0,k=0;
ط=س/100;
ي=(س %100) /10;
ik=fx % 10; (x==i*i*i+j*j*j+k*k*k) return true;
عودة كاذبة.
}
}
【الإجراء 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 وكرر الخطوة الأولى.
public class exp2{ public exp2(){} public void fengjie(int n){ for(int i=2;i<=n/2;i++){ if(n%i==0){
System.out.print(i+"*");
fengjie(n/i);
}
}
System.out.print(n);
System.exit(0);/// لا يمكن حذف هذه الجملة وإلا ستكون النتيجة خاطئة
}الفراغ الثابت العام (String[] args){
سلسلة سلسلة = ""؛
exp2 c=new exp2();
str=javax.swing.JOptionPane.showInputDialog("الرجاء إدخال قيمة N (أدخل الخروج للخروج):");
كثافة العمليات ن؛
نت = ص0y؛{
N=Integer.parseInt(str);
}قبض على(NumberFormatException ه){
printStackTrace();
}
System.out.print(N+"تحليل العوامل الأولية:"+N+"=");
c.fengjie(N);
}
}
[البرنامج 5] سؤال: استخدم تداخل العوامل الشرطية لإكمال هذا السؤال: يتم تمثيل الطلاب الحاصلين على درجات أكاديمية > = 90 نقطة بواسطة A، ويتم تمثيل الطلاب الحاصلين على درجات بين 60-89 بواسطة B، ويتم تمثيل الطلاب الحاصلين على درجات أقل من 60 بواسطة ج.
1. تحليل البرنامج: (أ> ب)؟أ:ب هذا مثال أساسي على العامل الشرطي.
import javax.swing.*; public class ex5 { public static void main(String[] args){
سلسلة سلسلة = ""؛
str=JOptionPane.showInputDialog("الرجاء إدخال قيمة N (أدخل الخروج للخروج):");
كثافة العمليات ن؛
نت = ص0y؛{
N=Integer.parseInt(str);
ca}tch(NumberFormatException e){
printStackTrace();
}
str=(N>90؟"A":(N>60؟"B":"C"));
System.out.println(str);
}
}
[البرنامج السادس] سؤال: أدخل عددين صحيحين موجبين m وn، وأوجد القاسم المشترك الأكبر لهما والمضاعف المشترك الأصغر لهما.
1. تحليل البرنامج: استخدم طريقة التبخر.
القاسم المشترك الأكبر:
فئة عامة CommonDivisor { public static void main(String args[])
{ القاسم المشترك(24,32);
} ثابت int commonDivisor(int M, int N)
{ إذا (ن<0||م<0)
{
Sryesttuermn.out.println("خطأ!");
}إذا (ن==0)
{
rSeytsutrenm.out.println("القاسم المشترك الأكبر هو :"+M);
}return commonDivisor(N,M%N);
}
}
المضاعف المشترك الأصغر والقاسم المشترك الأكبر:
استيراد java.util.Scanner؛ الفئة العامة CandC
{
// الطريقة التالية هي العثور على القاسم المشترك الأكبر
ثابت عام int gcd (int m، int n)
{بينما (صحيح)
{if ((m = m % n) == 0) return n if ((n = n % m) == 0) return m;
}}
يلقي الفراغ الرئيسي العام (String args[]) استثناءً
{
// احصل على قيمة الإدخال
//Scanner chin = new Scanner(System.in);
/i/ntint a = chin.nextInt(), b = chin.nextInt();
System.out.println("المضاعف المشترك الأصغر: " + a * b / c + "/n القاسم المشترك الأكبر: " + c);
}}
[برنامج 7] سؤال: أدخل سطرًا من الأحرف واحسب عدد الحروف الإنجليزية والمسافات والأرقام والأحرف الأخرى الموجودة فيه.
1. تحليل البرنامج: باستخدام عبارة while، الشرط هو أن حرف الإدخال ليس '/n'.
import java.util.Scanner public class ex7 { public static void main(String args[])
{
System.out.println("الرجاء إدخال سلسلة:");
Scanner scan=new Scanner(System.in);
سلسلة str=scan.next();
السلسلة E1 = "[/u4e00-/u9fa5]"؛
Sintrting E2="[a-zA-Z]"; int countE=0;
String[] arrStr=new String[arrChar.length]; for (int i=0;i<arrChar.length;i++)
{
arrStr[i]=String.valueOf(arrChar[i]);
}لـ (السلسلة i: arrStr )
{إذا (i.matches(E1))
{
countH++;
}إذا (i.matches(E2))
{
countE++;
}
}
System.out.println("عدد الأحرف الصينية"+countH);
System.out.println("عدد الحروف"+countE);
}
}
[الإجراء 8] السؤال: أوجد قيمة s=a+aa+aaa+aaaa+aa...a، حيث a هو رقم. على سبيل المثال، 2+22+222+2222+22222 (يتم إضافة إجمالي 5 أرقام في هذا الوقت) ويتم التحكم في إضافة عدة أرقام بواسطة لوحة المفاتيح.
1. تحليل البرنامج: المفتاح هو حساب قيمة كل عنصر.
import java.io.*; public class Sumloop { public static void main(String[] args) يلقي IOException
{كثافة العمليات = 0؛
إخراج السلسلة = ""؛
BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
System.out.println("الرجاء إدخال قيمة أ");
Sfotrring input =stadin.readLine(); (int i =1;i<=Integer.parseInt(input);i++)
{
ionuttput+=input a=Integer.parseInt(output);
ق+=أ;
}
System.out.println(s);
}
}
تفسير آخر:
import java.io.*; public class Sumloop { public static void main(String[] args) يلقي IOException
{ int س=0;
BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
إدخال السلسلة = stadin.readLine();
fno=rInteger.parseInt(input); (int i=1;i<=n;i++){
t=t*10+n;
ق=س+ر;
System.out.println(t);
}
System.out.println(s);
}
}
[البرنامج 9] سؤال: إذا كان العدد يساوي مجموع عوامله تمامًا، فإن الرقم يسمى "الرقم المثالي". على سبيل المثال، 6=1+2+3 برنامج للعثور على جميع الأعداد الصحيحة ضمن 1000.
فئة عامة Wanshu { public static void main(String[] args)
{ كثافة العمليات ل(int i=1;i<=1000;i++)
{
fs=o0r;(int j=1;j<i;j++) إذا(i % j==0)
إذا ق=س+ي؛(ق==ط)
System.out.print(i+" ");
}
System.out.println();
}
}
[الإجراء رقم 10] سؤال: تسقط كرة سقوطًا حرًا من ارتفاع 100 متر في كل مرة تصطدم فيها بالأرض، ترتد إلى نصف ارتفاعها الأصلي عندما تسقط مرة أخرى، ما إجمالي عدد الأمتار التي قطعتها عندما اصطدمت؟ الارض للمرة العاشرة؟ ما مدى ارتفاع التجمع العاشر؟
فئة عامة Ex10 { public static void main(String[] args)
{ مزدوج ق = 0؛ مزدوج ر = 100؛ ل(int i=1;i<=10;i++)
{
ق+=ر;
ر=ت/2;
}
System.out.println(s);
System.out.println(t);
}
}
[الإجراء رقم 11] سؤال: هناك أرقام 1 و2 و3 و4، ما عدد الأعداد المختلفة المكونة من ثلاثة أرقام التي يمكن تكوينها بدون أرقام متكررة؟ كم عددهم؟
1. تحليل البرنامج: الأعداد التي يمكن كتابتها في خانة المئات والعشرات والآحاد كلها 1، 2، 3، 4. بعد تكوين جميع التباديل، قم بإزالة التباديل التي لا تستوفي الشروط.
فئة عامة Wanshu { public static void main(String[] args)
{ int i=0; int k=0; =1;k<=4;k++) إذا(i!=j && j!=k && i!=k)
{ر+=1;
System.out.println(i*100+j*10+k);
}
System.out.println(t);
}
}
[الإجراء رقم 12] السؤال: المكافآت التي تصدرها الشركة تعتمد على عمولات الربح. عندما يكون الربح (I) أقل من أو يساوي 100000 يوان، يمكن زيادة المكافأة بنسبة 10% عندما يكون الربح أكبر من 100000 يوان وأقل من 200000 يوان، فإن الجزء الأقل من 100000 يوان يخضع لنسبة 10%؛ العمولة، وإذا كان الربح أكبر من 100000 يوان، تكون المكافأة 10% بالنسبة للجزء الذي يتراوح بين 200000 يوان صيني و400000 يوان صيني، تكون العمولة 5% للجزء الذي يزيد عن 200000 يوان صيني للجزء الذي يتراوح بين 400000 يوان صيني و600000 يوان صيني؛ العمولة هي 3٪ للجزء الذي يزيد عن 400000 يوان صيني؛ وعندما يتراوح بين 600000 و1 مليون يوان، يمكن تكليف الجزء الذي يزيد عن 600000 يوان بنسبة 1.5٪. عندما يكون الجزء الذي يزيد عن مليون يوان هو 1 % العمولة أدخل الربح للشهر الحالي من لوحة المفاتيح يرجى الرد.
1. تحليل البرنامج: يرجى استخدام محور الأرقام للتقسيم وتحديد الموقع. لاحظ أنه يجب تعريف المكافأة كعدد صحيح عند التعريف.
import java .util.*; public class test { public static void main (String[]args){
double sum;// أعلن عن المكافأة التي سيتم إصدارها في المتغير المراد تخزينه
إدخال الماسح الضوئي = ماسح ضوئي جديد (System.in)؛// استيراد الماسح الضوئي
System.out.print ("أدخل ربح الشهر الحالي")؛
double lirun=input .nextDouble();// أدخل الربح من وحدة التحكم
إذا (ليرون<=100000){
sum=lirun*0.1;
}إلا إذا (ليرون<=200000){
المبلغ=10000+ليرون*0.075;
}else if (lirun<=400000){
المبلغ=17500+ليرون*0.05;
}else if (lirun<=600000){
sum=lirun*0.03;
}إلا إذا (ليرون<=1000000){
sum=lirun*0.015;
} آخر{
sum=lirun*0.01;
}
System.out.println("المكافأة التي يجب دفعها هي"+sum);
}
}
يمكن للقارئ تحسين الكود الخاص بالمواقف الأخرى أدناه.
【الإجراء 13】
سؤال: عدد صحيح بعد إضافة 100 يصبح عددا مربعا كاملا، وعند إضافة 168 يصبح عددا مربعا كاملا ما هو هذا العدد؟
1. تحليل البرنامج: للحكم ضمن 100000، أضف أولاً 100 إلى الرقم قبل الوصف، ثم أضف 268 إلى الرقم ثم وصف إذا كانت النتيجة بعد الوصف تستوفي الشروط التالية، فهي النتيجة. يرجى الاطلاع على التحليل المحدد:
اختبار الطبقة العامة { public static void main (String[]args){
long 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(ك);
}
}
[البرنامج 14] السؤال: أدخل سنة معينة وشهر معين ويوم معين وحدد ما هو يوم السنة هذا اليوم؟
1. تحليل البرنامج: لنأخذ يوم 5 مارس كمثال، يجب عليك أولاً إضافة الشهرين السابقين، ثم إضافة 5 أيام، وهو يوم من أيام السنة، مثل السنوات الكبيسة والأشهر المدخلة الأكبر من 3. تحتاج إلى النظر فيها.
import java.util.*; public class test { public static void main (String[]args){ int day=0; int year=0;
System.out.print("الرجاء إدخال السنة والشهر واليوم/الرقم");
إدخال الماسح الضوئي = الماسح الضوئي الجديد (System.in)؛
year=input.nextInt();
شهر=input.nextInt();
day=input.nextInt();
Switch(month) /*قم أولاً بحساب إجمالي عدد الأيام في الشهر السابق*/
{الحالة 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("خطأ في البيانات");break;
}
sum=sum+day /*أضف عدد الأيام في يوم معين*/
if(year%400==0||(year%4==0&&year%100!=0))/*تحديد ما إذا كانت سنة كبيسة*/
elseleap=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.
import java.util.*; public class test { public static void main (String[]args){ int j=0;
System.out.print("الرجاء إدخال ثلاثة أرقام/n");
إدخال الماسح الضوئي = الماسح الضوئي الجديد (System.in)؛
i=input.nextInt();
j=input.nextInt();
k=iifnput.nextInt(); (i>j)
{
س=أنا;
أنا=ي;
ي=س;
}إذا(ط>ك)
{
س=أنا;
أنا=ك;
ك=س;
}إذا(ي>ك)
{
س=ي;
ي=ك;
ك=س;
}
System.out.println(i+", "+j+", "+k);
}
}
[برنامج 16] سؤال: صيغة الإخراج 9*9.
1. تحليل البرنامج: ضع في اعتبارك الصفوف والأعمدة، هناك 9 صفوف و 9 أعمدة في المجموع، i يتحكم في الصفوف و j يتحكم في الأعمدة.
فئة عامة جيوجيو { public static void main(String[] args)
{ int i=0; int j=0;
{ ل(ي=1;ي<=9;ي++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
لا توجد منتجات متكررة (المثلث السفلي)
فئة عامة جيوجيو { public static void main(String[] args)
{ int i=0; int j=0;
{ ل(ي=1;ي<=i;ي++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
المثلث العلوي
فئة عامة جيوجيو { public static void main(String[] args)
{ int i=0; int j=0;
{ ل(ي=i;ي<=9;ي++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
[الإجراء 17] العنوان: قرد يأكل الخوخ المشكلة: قطف القرد عددًا قليلًا من الدراق في اليوم الأول، وأكل نصفها على الفور، ولم يشبع بعد، فأكل واحدة أخرى وأكل نصف الدراق المتبقي في صباح اليوم التالي.
أكلت واحدة أخرى. ومنذ ذلك الحين، كنت أتناول كل صباح نصف وواحدة من بقايا طعام اليوم السابق. وعندما أردت أن أتناول المزيد من الطعام في صباح اليوم العاشر، رأيت أنه لم يتبق سوى خوخة واحدة. تعرف على عدد الأشخاص الذين تم اختيارهم في اليوم الأول.
1. تحليل البرنامج: اعتماد أسلوب التفكير العكسي والاستدلال من الخلف إلى الأمام.
قرد الطبقة العامة يأكل الخوخ {
static int Total(int day){ if(day == 10){ return 1;
}else{ return (total(day+1)+1)*2;
}
public s}tatic void main(String[] args)
{
System.out.println(total(1));
}}
[الإجراء رقم 18] الموضوع: يتنافس فريقان لتنس الطاولة، يضم كل منهما ثلاثة لاعبين. يتكون الفريق "أ" من ثلاثة أشخاص "أ" و"ب" و"ج"، ويتكون الفريق "ب" من ثلاثة أشخاص "س" و"ص" و"ع". تم سحب القرعة لتحديد قائمة المباريات. سأل أحدهم اللاعبين عن قائمة المباراة. قال a إنه لا ينافس x، وقال c إنه لا ينافس x وz. يرجى برمجة برنامج للعثور على قائمة اللاعبين من الفرق الثلاثة.
1. تحليل البرنامج: كيفية الحكم على الأعداد الأولية: استخدم رقمًا لتقسيم 2 إلى sqrt (هذا الرقم) على التوالي. إذا كان من الممكن تقسيمه، فهذا يعني أن الرقم ليس عددًا أوليًا، وإلا فهو رقم أولي.
import java.util.ArrayList; public class pingpang {
pSutbrliincg sat,abt,icc;
String[] op = { "x"، "y"، "z" };
ArrayList<pingpang> arrayList=new ArrayList<pingpang>(); for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) for (int k = 0; k < 3 ؛ ك++) {
pingpang a=new pingpang(op[i],op[j],op[k]); if(!aaequals(ab)&&!abequals(ac)&&!aaequals("x")
&&!acequals("x")&&!acequals("z")){
arrayList.add(a);
}
لـ}(الكائن أ:قائمة الصفيف){
System.out.println(a);
}
}pingpang العامة(String a, String b, String c) { this.a = a; this.b = b;
}
@pOubvelircide سلسلة toString() {
// TODO طريقة تم إنشاؤها تلقائيًا stub
إرجاع "خصم a هو "+a+"، "+" خصم b هو "+b+"، "+" خصم c هو "+c+"/n";
}
}
【البرنامج 19】العنوان: اطبع النموذج التالي (الماس)
*
***
****
**********
****
***
*
1. تحليل البرنامج: أولاً، قم بتقسيم الرسم البياني إلى جزأين، الصفوف الأربعة الأولى لها قاعدة واحدة، والصفوف الثلاثة الأخيرة لها قاعدة واحدة. استخدم حلقات for المزدوجة، الطبقة الأولى تتحكم في الصفوف، والطبقة الثانية تتحكم في الأعمدة .
مثلث:
فئة عامة StartG { public static void main(String [] args)
{ int i=0; int j=0;
{ ل(ي=1;ي<=2*i-1;ي++)
System.out.print("*");
System.out.println("");
}ل(i=4;i>=1;i--)
{ ل(ي=1;ي<=2*i-3;ي++)
System.out.print("*");
System.out.println("");
}
}
}
الماس:
فئة عامة StartG { public static void main(String [] args)
{ int i=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++)
for 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. تحليل البرنامج: يرجى فهم القواعد المتغيرة للبسط والمقام.
public class test20 { public static void main(String[] args) { float fm = 1f; float temp = 0f;
درجة الحرارة = وزير الخارجية؛
وزير الخارجية = فز.
fz = fz + درجة الحرارة؛
مجموع += فز/فم؛
//System.out.println(sum);
}
System.out.println(sum);
}
}
[البرنامج 21] السؤال: أوجد مجموع 1+2!+3!+...+20!
1. تحليل البرنامج: يقوم هذا البرنامج بتحويل التراكم إلى الضرب التراكمي.
public class Ex21 { static long sum = 0; public static void main(String[] args) { long sum = 0; for(int i=1; i<=10; i++ ) {
فاك = فاك * أنا؛
مجموع += فاك؛
}
System.out.println(sum);
}}
[البرنامج 22] العنوان: استخدم الطريقة العودية للعثور على 5!.
1. تحليل البرنامج: الصيغة العودية: fn=fn_1*4!
import java.util.Scanner public class Ex22 { public static void main(String[] args) {
Scanner s = new Scanner(System.in); int n = s.nextInt();
Ex22 tfr = new Ex22();
System.out.println(tfr.recursion(n));
}
العودية الطويلة العامة (int n) { قيمة طويلة = 0 إذا (n ==1 || n == 0) {
القيمة = 1؛
} وإلا إذا(ن > 1) {
القيمة = ن * العودية(ن-1);
}قيمة الإرجاع؛
}}
[الإجراء رقم 23] سؤال: هناك 5 أشخاص يجلسون معًا، كم عمر الشخص الخامس؟ وقال إنه كان أكبر من الشخص الرابع بسنتين. عندما سألت الشخص الرابع كم عمره، قال أنه أكبر من الشخص الثالث بسنتين. سألت الشخص الثالث فقال أنه أكبر من الشخص الثاني بسنتين. سأل الشخص الثاني وقال إنه أكبر من الشخص الأول بسنتين. وأخيراً سألت الشخص الأول فقال أن عمره 10 سنوات. كم عمر الشخص الخامس؟
1. تحليل البرنامج: باستخدام الطريقة العودية، ينقسم التكرار إلى مرحلتين: التراجع والتكرار. إذا كنت تريد معرفة عمر الشخص الخامس، فأنت بحاجة إلى معرفة عمر الشخص الرابع، وهكذا حتى الشخص الأول (10 سنوات).
ادفع مرة أخرى.
public class Ex23 { static int getAge(int n){ if (n==1){ return 10;
}return 2 + getAge(n-1);
}الفراغ الثابت العام (String[] args) {
System.out.println("العمر الخامس هو:"+getAge(5));
}
}
[البرنامج 24] سؤال: إذا كان عدد صحيح موجب لا يزيد عن 5 أرقام، فإن المتطلبات هي: 1. معرفة عدد الأرقام التي يحتوي عليها، و2. طباعة الأرقام بترتيب عكسي.
import java.util.Scanner public class Ex24 { public static void main(String[] args) {
Ex24 tn = new Ex24();
Scanner s = new Scanner(System.in); long a = s.nextLong();
System.out.println("خطأ في الإدخال، يرجى تشغيل هذا البرنامج مرة أخرى");
System.exit(0);
}إذا(أ >=0 && أ <=9) {
System.out.println(a + "هو رقم واحد");
System.out.println("الإخراج بترتيب عكسي هو "+ '/n' + a);
} وإلا إذا(أ >= 10 && أ <= 99) {
System.out.println(a + "هو رقم مكون من رقمين");
System.out.println("الإخراج بترتيب عكسي");
tn.converse(a);
} وإلا إذا (أ >= 100 && أ <= 999) {
System.out.println(a + "هو رقم مكون من ثلاثة أرقام");
System.out.println("الإخراج بترتيب عكسي");
tn.converse(a);
} وإلا إذا (أ >= 1000 && أ <= 9999) {
System.out.println(a + "رقم مكون من أربعة أرقام");
System.out.println("الإخراج بترتيب عكسي");
tn.converse(a);
} وإلا إذا (أ >= 10000 && أ <= 99999) {
System.out.println(a + "هو رقم مكون من خمسة أرقام");
System.out.println("الإخراج بترتيب عكسي");
tn.converse(a);
}
} محادثة الفراغ العام (طويلة l) {
String s = Long.toString char (l); [] ch = s.toCharArray(); for(int i=ch. length-1; i>=0; i--) {
System.out.print(ch[i]);
}
}}
[برنامج 25] سؤال: رقم مكون من 5 أرقام، حدد ما إذا كان رقمًا متناظرًا. أي أن 12321 هو رقم متناظر، ورقم الآحاد هو نفس رقم الآلاف، ورقم العشرات هو نفس رقم الآلاف.
import java.util.Scanner; public class Ex25 { static int[] a = new int[5]; ;
Scanner s = new Scanner(System.in); long l = s.nextLong();
System.out.println("خطأ في الإدخال، يرجى الإدخال مرة أخرى!");
ل = s.nextLong();
}for (int i = 4; i >= 0; i--) { a[i] = (int) (l / (long) Math.pow(10, i));
ل =(ل % (طويل) Math.pow(10, i));
}
println(); (int i=0,j=0; i<5; i++, j++) {
ب[ي] = أ[i];
}for(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 للحكم على الحرف الثاني.
import java.util.Scanner public class Ex26 { public static void main(String[] args){
// احفظ الحرف الثاني الذي أدخله المستخدم
أسبوع شارSecond؛
// إنشاء مثيل لفئة الماسح الضوئي ككائن إدخال لتلقي إدخال المستخدم
إدخال الماسح الضوئي = الماسح الضوئي الجديد (System.in)؛
// ابدأ في المطالبة بإدخال وحدة تحكم المستخدم واستلامه
System.out.print("الرجاء إدخال قيمة الحرف الأول من الأسبوع باللغة الإنجليزية وسأساعدك في تحديد يوم الأسبوع:");
حرف السلسلة = input.next();
// تحديد ما إذا كان طول سلسلة إدخال وحدة تحكم المستخدم حرفًا واحدًا
إذا (letter.length() == 1){
// استخدم الحرف الذي يأخذ بت الفهرس الأول للسماح للماسح الضوئي بتلقي إدخال نوع الحرف
charweekFirst = letter.charAt(0);
// عند إدخال أحرف صغيرة، استخدم ميزة بنية التبديل لتنفيذ فرع الحالة التالي باستخدام عبارة فاصل لتنفيذ وظيفة تجاهل حساسية حالة الأحرف لإدخال وحدة تحكم المستخدم
الحالة "م":
System.out.println("الاثنين");
استراحة؛ الحالة "ر":
// عند إدخال أحرف صغيرة، استخدم ميزة بنية التبديل لتنفيذ فرع الحالة التالي باستخدام عبارة فاصل لتنفيذ وظيفة تجاهل حساسية حالة الأحرف لإدخال وحدة تحكم المستخدم
الحالة "ت":
System.out.print("بما أن الثلاثاء (الثلاثاء) والخميس (الخميس) يبدأان بالحرف T، فأنت بحاجة إلى إدخال الحرف الثاني للحكم بشكل صحيح:");
letter = input.next();
// تحديد ما إذا كان طول سلسلة إدخال وحدة تحكم المستخدم حرفًا واحدًا
إذا (letter.length() == 1){
// استخدم الحرف الذي يأخذ بت الفهرس الأول للسماح للماسح الضوئي بتلقي إدخال نوع الحرف
WeekSecond = letter.charAt(0);
// استخدم عامل التشغيل أو (||) لتنفيذ وظيفة تجاهل حساسية حالة الأحرف لإدخال وحدة تحكم المستخدم
إذا (weekSecond == 'U' ||weekSecond == 'u'){
System.out.println("الثلاثاء");
استراحة؛
// استخدم عامل التشغيل أو (||) لتنفيذ وظيفة تجاهل حساسية حالة الأحرف لإدخال وحدة تحكم المستخدم
} else if (weekSecond == 'H' ||weekSecond == 'h'){
System.out.println("الخميس");
استراحة؛
// رسالة خطأ وحدة التحكم
} آخر{
System.out.println("خطأ في الإدخال، لا يمكن التعرف على الحرف الثاني من قيمة الأسبوع، وينتهي البرنامج!");
استراحة؛
}
} آخر {
// رسالة خطأ وحدة التحكم
System.out.println("خطأ في الإدخال، يمكن إدخال حرف واحد فقط، وينتهي البرنامج!");
استراحة؛
كاليفورنيا}se 'w':
// عند إدخال أحرف صغيرة، استخدم ميزة بنية التبديل لتنفيذ فرع الحالة التالي باستخدام عبارة فاصل لتنفيذ وظيفة تجاهل حساسية حالة الأحرف لإدخال وحدة تحكم المستخدم
الحالة "ث":
System.out.println("الأربعاء");
استراحة؛ الحالة "و":
// عند إدخال أحرف صغيرة، استخدم ميزة بنية التبديل لتنفيذ فرع الحالة التالي باستخدام عبارة فاصل لتنفيذ وظيفة تجاهل حساسية حالة الأحرف لإدخال وحدة تحكم المستخدم
الحالة "و":
System.out.println("الجمعة");
استراحة؛
// عند إدخال أحرف صغيرة، استخدم ميزة بنية التبديل لتنفيذ فرع الحالة التالي باستخدام عبارة فاصل لتنفيذ وظيفة تجاهل حساسية حالة الأحرف لإدخال وحدة تحكم المستخدم
حالات':
System.out.print("بما أن السبت (السبت) والأحد (الأحد) كلاهما يبدأ بالحرف S، فأنت بحاجة إلى إدخال الحرف الثاني للحكم بشكل صحيح:");
letter = input.next();
// تحديد ما إذا كان طول سلسلة إدخال وحدة تحكم المستخدم حرفًا واحدًا
إذا (letter.length() == 1){
// استخدم الحرف الذي يأخذ بت الفهرس الأول للسماح للماسح الضوئي بتلقي إدخال نوع الحرف
WeekSecond = letter.charAt(0);
// استخدم عامل التشغيل أو (||) لتنفيذ وظيفة تجاهل حساسية حالة الأحرف لإدخال وحدة تحكم المستخدم
إذا (weekSecond == 'أ' ||weekSecond == 'أ'){
System.out.println("السبت");
استراحة؛
// استخدم عامل التشغيل أو (||) لتنفيذ وظيفة تجاهل حساسية حالة الأحرف لإدخال وحدة تحكم المستخدم
} else if (weekSecond == 'U' ||weekSecond == 'u'){
System.out.println("الأحد");
استراحة؛
// رسالة خطأ وحدة التحكم
} آخر{
System.out.println("خطأ في الإدخال، لا يمكن التعرف على الحرف الثاني من قيمة الأسبوع، وينتهي البرنامج!");
استراحة؛
}
} آخر{
// رسالة خطأ وحدة التحكم
System.out.println("خطأ في الإدخال، يمكن إدخال حرف واحد فقط، وينتهي البرنامج!");
استراحة؛
تقصير:
// رسالة خطأ وحدة التحكم
System.out.println("خطأ في الإدخال، لا يمكن التعرف على الحرف الأول من قيمة الأسبوع، وينتهي البرنامج!");
استراحة؛
}
} آخر{
// رسالة خطأ وحدة التحكم
System.out.println("خطأ في الإدخال، يمكن إدخال حرف واحد فقط، وينتهي البرنامج!");
}
}
}
[البرنامج 27] العنوان: إيجاد الأعداد الأولية ضمن 100
فئة عامة Ex27 { public static void main(String args[])
{مجموع كثافة العمليات، ط ل(مجموع = 2؛ مجموع <= 100؛ مجموع ++)
{ل(i=2;i<=sum/2;i++)
{if(sum%i==0) فاصل;
}إذا(i>مجموع/2)
System.out.println(sum+"هو رقم أولي");
}
}
}
[البرنامج 28] الموضوع: فرز 10 أرقام
1. تحليل البرنامج: يمكنك استخدام طريقة الاختيار، أي من آخر 9 عمليات مقارنة، حدد أصغر عنصر لتبادله مع العنصر الأول عن طريق القياس في المرة القادمة، استخدم العنصر الثاني للمقارنة مع آخر 8 عناصر و تبادل لهم.
import java.util.Arrays; import java.util.Random; import java.util.Scanner public class Ex28 { public static void main(String[] args) { int arr[] = new int[11];
Random r=new Random(); for(int i=0;i<10;i++){
arr[i]=r.nextInt(100)+1;// احصل على 10 أعداد صحيحة ضمن 100
}
Arrays.sort for (arr); (int i=0;i<arr.length;i++){
System.out.print(arr[i]+"/t");
}
System.out.print("/nيرجى إدخال رقم صحيح:");
Scanner sc=new Scanner(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. تحليل البرنامج: استخدم حلقات for المزدوجة للتحكم في مدخلات مصفوفة ثنائية الأبعاد، ثم قم بتجميع a[i][i] وإخراجه.
public class Ex29 { public static void main(String[] args){ double sum=0; }}; for(int i=0;i<3;i++) for(int j=0;j<3;j++){ if(i==j)
sum=sum + array[i][j];
}
System.out.println(sum);
}
}
[برنامج 30] سؤال: هناك مصفوفة تم فرزها. الآن أدخل رقمًا وأدخله في المصفوفة وفقًا للقواعد الأصلية.
1. تحليل البرنامج: حدد أولاً ما إذا كان هذا الرقم أكبر من الرقم الأخير، ثم فكر في إدخال الرقم الأوسط بعد الإدراج، سيتم إرجاع الأرقام بعد هذا العنصر إلى موضع واحد مرة أخرى.
import java.util.Random public class ArraySort { public static void main(String[] args)
{ int temp=0; int myarr[] = new int[12];
Random r=new Random();
fomryarr[i]=r.nextInt(1000); (int k=1;k<=10;k++)
fSoyrstem.out.print(myarr[k]+"،"(int i=1;i<=9;i++) for(int k=i+1;k<=10;k++) if(myarr[i ]>ميار[ك])
{
temp=myarr[i];
myarr[i]=myarr[k];
myarr[k]=temp;
}
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++) if(myarr[k]>myarr[11])
{
fteomrp=myarr[11]; (int j=11;j>=k+1;j--)
myarr[j]=myarr[j-1];
myarr[k]=temp;
}
forSystem.out.println(""); (int k=1;k<=11;k++)
System.out.print(myarr[k]+"،");
}
}
[البرنامج 31] العنوان: إخراج مصفوفة بترتيب عكسي.
تحليل البرنامج: مبادلة الأول والأخير.
في الواقع، من الأسهل التحكم في المتغيرات باستخدام الحلقة:
ل(int ك=11;ك>=1;ك--)
System.out.print(myarr[k]+"،");
[البرنامج 32] العنوان: خذ الأرقام المكونة من 4 إلى 7 أرقام من العدد الصحيح a بدءًا من الطرف الأيمن.
تحليل البرنامج: يمكنك التفكير في الأمر بهذه الطريقة:
(1) قم أولاً بإزاحة a إلى اليمين بمقدار 4 بتات.
(2) قم بتعيين رقم بحيث تكون البتات الأربع السفلية كلها 1 والباقي كله 0. متاح~(~0 < <4)
(٣) أداء وتشغيل على الاثنين المذكورين أعلاه.
فئة عامة Ex32 { public static void main(String[] args)
{ int أ=0; طويل ب=18745678;
a=(int) Math.floor(b % Math.pow(10,7)/Math.pow(10, 3));
System.out.println(a);
}}
【البرنامج 33】
سؤال: اطبع مثلث يانغ هوي (مطلوب لطباعة 10 أسطر كما هو موضح أدناه)
1. تحليل البرنامج:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
public class Ex33 { public static void main(String args[]){ int i,j;
a=new int[8][8]; for(i=0;i<8;i++){
أ[i][i]=1;
a[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];
}
}for(i=0;i<8;i++){ for(j=0;j<i;j++){
System.out.printf(" "+a[i][j]);
}
System.out.println();
}
}
}
[برنامج 34] سؤال: أدخل 3 أرقام أ، ب، ج، وأخرجها حسب الحجم.
1. تحليل البرنامج: باستخدام أساليب المؤشر.
فئة عامة Ex34 { public static void main(String[] args)
{int []المصفوفات = {800,56,500}; for(int i=arrays.length;--i>=0;)
{ل(int j=0;j<i;j++)
{إذا (المصفوفات[j]>المصفوفات[j+1])
{int temp=arrays[j];
arrays[j]=arrays[j+1];
arrays[j+1]=temp;
}}} for(int n=0;n<arrays.length;n++)
System.out.println(arrays[n]);
}
}
[البرنامج 35] العنوان: إدخال مصفوفة، واستبدال أكبر عنصر بالعنصر الأول، واستبدال أصغر عنصر بالعنصر الأخير، وإخراج المصفوفة.
import java.util.*; public class Ex35 { public static void main(String[] args) { int i, min, max, n, temp1, temp2 int a[];
System.out.println("أدخل طول المصفوفة:");
لوحة مفاتيح الماسح الضوئي = new Scanner(System.in);
n = Keyboard.nextInt();
a = new int[n]; for (i = 0; i < n; i++) {
System.out.print("أدخل "th" + (i + 1) + "data");
a[i] = Keyboard.nextInt();
}
// ما ورد أعلاه هو مدخلات المصفوفة بأكملها
الحد الأقصى = 0؛
دقيقة = 0؛
// قم بتعيين علامتين، بدءًا من الإشارة إلى الرقم الأول
لـ (i = 1; i < n; i++) { إذا (a[i] > a[max])
max = i; // اجتياز المصفوفة، إذا كانت أكبر من a[max]، فقم بتعيين رمز المصفوفة الخاص به إلى max
إذا (أ[i] <أ[دقيقة])
min = i; // كما هو مذكور أعلاه، إذا كان أقل من a[min]، فقم بتعيين رمز الصفيف الخاص به إلى min
}
// ما ورد أعلاه للحلقة يجد الحد الأقصى والحد الأدنى للقيم، max هو منخفض القيمة القصوى، min هو منخفض القيمة الدنيا
temp1 = a[0];
temp2 = a[min]; // هذين المؤقتين مخصصان للاستخدام في التبادل فقط
a[0] = a[max];
a[max] = temp1; // التبادل الأول a[0] والحد الأقصى للقيمة a[max]
if (min != 0) { // إذا لم تكن القيمة الدنيا [0]، فقم بتنفيذ ما يلي
أ[دقيقة] = أ[ن - 1]؛
a[n - 1] = temp2; // تبادل a[min] وa[n-1]
} else { // إذا كانت القيمة الدنيا هي [0]، فقم بتنفيذ ما يلي
a[max] = a[n - 1];
أ[ن - 1] = درجة الحرارة 1؛
}
for (i = 0; i < n; i++) { // صفيف الإخراج
System.out.print(a[i] + " ");
}}}
[برنامج 36] السؤال: هناك n أعداد صحيحة، بحيث يتم نقل الأرقام السابقة إلى الخلف بمقدار مواضع m، وتصبح أرقام m الأخيرة هي أرقام m الأولى [برنامج 37]
سؤال: هناك n من الأشخاص يجلسون في دائرة ويقومون بترقيمهم بالترتيب. ابدأ في العد من الشخص الأول (العد من 1 إلى 3).
استيراد java.util.scanner ؛
الماسح الضوئي = System.in) ؛
arr [i] = true ؛ // عندما يكون المنشور صحيحًا ، فهذا يعني أنه لا يزال في الدائرة
} intcount = n ؛
if (arr [index] == true) {// عندما في الدائرة
countnum ++ ؛
if (countnum == 3) {// عند الإبلاغ 3
countnum = 0 ؛ // متابعة العد من الصفر
arr [index] = false ؛ // يخرج هذا الشخص من الدائرة
LeftCount -؛ // يتم تخفيض العدد المتبقي من الأشخاص
}
}
index ++ ؛ // في كل مرة يتم الإبلاغ عن الرقم ، يزداد الترتيب بمقدار واحد
إذا كان (index == n) {// هو عدد دائري.
الفهرس = 0 ؛ // اضبط الفهرس على الصفر والبدء مرة أخرى.
}
} لـ (int i = 0 ؛ i <n ؛ i ++) {if (arr [i] == true) {
System.out.println(i);
}
}
}
}
【البرنامج 38】
سؤال: اكتب وظيفة للعثور على طول السلسلة.
استيراد java.util.scanner
{
الماسح الضوئي = الماسح الضوئي الجديد (system.in) ؛
System.out.println("الرجاء إدخال سلسلة");
سلسلة mys = s.next () ؛
system.out.println (str_len (mys)) ؛
} static 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 for (list) ؛
System.out.println (list.get (i)) ؛
}}}
【البرنامج 40】
الموضوع: هناك مجموعة من الخوخ على الشاطئ ، ويتعين على خمس قرود تقسيمها. قام القرد الأول بتقسيم كومة الخوخ إلى خمسة أجزاء. قام القرد الثاني بتقسيم الخوخ المتبقي إلى خمسة أجزاء متساوية. هناك على الشاطئ؟
الفئة العامة DG {
ثابت int ts = 0 ؛ // إجمالي عدد الخوخ
int fs = 1 ؛ // سجل عدد النقاط
ثابت int hs = 5 ؛ // عدد القرود ...
int tsscope = 5000 ؛
public int ft (int t) {if (t == tsscope) {
// قم بإلغاء العودية عندما يصل عدد الخوخ إلى الحد الأقصى لقيمة نطاق القيمة
system.out.println ("end") ؛
العودة 0؛
} آخر {if ((t-1) ٪ hs == 0 && fs <= hs) {if (fs == hs)
{
System.out.println ("يتم استيفاء حالة تقسيم الخوخ عندما يكون عدد الخوخ =" +ts +"") ؛
}
fs+= 1 ؛
إرجاع قدم ((T-1)/5*4) ؛ // إرجاع المبلغ الإجمالي المتبقي بعد أن يأخذ القرد قطعة واحدة
}آخر
{
// لم يتم تلبية الشروط
FS = 1 ؛
إرجاع FT (TS += 1) ؛ // إضافة +1 إلى عدد الخوخ
}}}
public static void main (string [] args) {new dg (). ft (0) ؛
}
}