الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال ضروري بلغة الجافا

بدأه aliq1988 في 1 أبريل 2011 · 3 رد · 329 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اكتب برنامج بلغة جافا يقوم باستقبال رقم صحيح ثم يطبع جميع الاحتمالات المكونة من الارقام التي تقل عنه بحيث يكون ناتج مجموعها مساو لنفس الرقم، للتوضيح المثال التالي يبين المطلوب اذا كان الرقم المدخل على سبيل المثال هو العدد 6 فان ناتج البرنامج يجب ان يكون :

1+1+1+1+1+1+=6

1+1+1+1+2=6

1+1+1+3=6

1+1+4=6

1+5=6

2+1+1+1+1=6

2+1+1+2=6

2+1+3=6

2+4=6

3+1+1+1=6

3+1+2=6

3+3=6

4+1+1=6

4+2=6

5+1=6

الرجاء مساعدتي للضرورة القصوى وجزاكم الله كل خير

#2

ضع محاولاتك اخى الكريم

لان ذلك مخالف لقوانين المنتدى

فقره حل الواجبات

Software Developer
Mahmoudkelany.com


 

#3

اخواني الكرام ارجوكم مساعدتي ولكم كل التقدير

#4
import java.util.*;
public class Test
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter an integer? ");
        int num = in.nextInt();
        System.out.println();
        Test t = new Test();
        t.calculate(num);
    }

    public void calculate(int n)
    {
        List<StringBuilder> combos = showAdditionsFor(n);
        for(StringBuilder s : combos)
        {
            if (s.indexOf("+") < 0)
            {
                System.out.println(s + " + 0 = " + n);
                System.out.println("0 + " + s + " = " + n);
            }
            else
            {
                System.out.println(s + " = " + n);
            }
        }
    }

    List<StringBuilder> showAdditionsFor(int n)
    {
        List<StringBuilder> list = new ArrayList<StringBuilder>();
        if(n == 0) list.add(new StringBuilder(""));
        else if(n == 1) list.add(new StringBuilder(String.valueOf(1)));
        else
        {
            for(int i = 1; i <=n; i++)
            {
                //get n-i list
                List<StringBuilder> tempList = showAdditionsFor(n-i);
                appendToEachListElement(String.valueOf(i),tempList);
                list.addAll(tempList);
            }
        }
        return list;
    }

    private void appendToEachListElement(String x, List<StringBuilder>l)
    {
        for(StringBuilder s : l)
        {
            if(s.length() == 0) s.append(x);
            else s.append("+" + x);
        }
    }
}
597657.png

مواضيع مشابهة