نمایش نتایج 1 تا 11 از 11

نام تاپیک: جواب سوالات مسابقات جاوا کاپ در سایت Quera

  1. #1

    جواب سوالات مسابقات جاوا کاپ در سایت Quera

    نمی دونم چند درصد از برنامه نویسان این تالار تو مسابقات جاوا کاپ شرکت میکنند ولی یکسری مسابقات تستی هم داره که میتونین شرکت کنین خیلی خوب قدرت الگوریتم نویسی رو بالا میبره
    خودم برای شروع دوتا از سوال هاشو که با روش خودم نوشتم میذارم خوشحال میشم دوستان نظر بدن ویا اگر بدرد شو خورد بهم بگه ممنون میشم
    البته خیلی خیلی ساده هستند.
    با تشکر
    اعداد کامل کوچکتر از ۱۰,۰۰۰

    public class CompleteNumber {

    private static int sNum = 0 , cnt = 0;
    private static Function<Integer , Boolean> sumFunc = FuncProc::sumNumber;
    private static BiFunction<Integer,Integer,Boolean> mod = FuncProc::mod;

    public static void main(String[] args) {
    Consumer<Integer> cOut = System.out::println;

    for (int i = 2; i < 10000; i++) {
    if(sumFunc.apply(i)) cOut.accept(i);
    sNum = 0; cnt = 0 ;
    }

    }

    @Test
    public void test1() {
    assertEquals(sumFunc.apply(8),false);
    assertEquals(sumFunc.apply(6),true);
    assertEquals(sumFunc.apply(28),true);
    }
    private static class FuncProc {
    //for loop algorithm
    private static boolean sumNumber(int arg) {
    int sNum = 0;
    for (int i = 1; i < arg; i++) {
    sNum += mod.apply(arg,i) ? i : 0;
    }
    return sNum == arg ;
    }

    //recursive algorithm
    private static boolean sumNumber2(int arg) {
    int i = (++cnt - arg + arg);
    if(sNum== arg
    && i >= arg)
    return true;
    else if(sNum > arg)
    return false;
    sNum += mod.apply(arg,i) ? i : 0;
    return sumFunc.apply(arg);
    }

    private static boolean mod(int a , int b) {
    return a % b == 0 ;
    }
    }

    اگر نخواستید متیونید Test هاشو غیر فعال کنید

  2. #2

    نقل قول: جواب سوالات مسابقات جاوا کاپ در سایت Quera

    تعداد دفعات تکرار رشته‌ی دوم در رشته‌ی اول
    البته من با روش Regex عبارتهای منطقی نوشتم

    public class RepeatInString {
    private static Consumer<Integer> cOut = System.out::println;
    private static Consumer<String> sOut = System.out::println;

    public static void main(String[] args) {
    HashMap<String,String> strs = new HashMap<>();
    strs.put("sal","salam");
    strs.put("gol","golgoli");
    strs.put("sas","sasasas");
    strs.put("nan","nanananan");
    strs.put("n","nananananiiinan");
    strs.put("na","nananananiiinan");
    strs.put("zoz","zozozozozozo");
    strs.put(null,null);
    strs.put("","");

    strs.forEach((k,v)-> System.out.printf("%s , %s -> , %d \n",v , k ,StringInString(v,k)));

    private static int StringInString(String one, String two) {
    int cnt = 0;
    if (one == null || two == null || one.isEmpty() || two.isEmpty())
    return cnt;

    String quantifier = two.charAt(0)+"*?"+two.substring(1,two.length());
    //String quantifier1 = two.concat("*?");
    Pattern pattern = Pattern.compile(two.length() > 1 ? quantifier : two);
    Matcher matcher = pattern.matcher(one);

    Predicate<String> sPredicate = pattern.asPredicate();
    boolean a = sPredicate.test(one);
    while (matcher.find()) cnt++;

    return cnt;
    }

    }
    }

  3. #3

    نقل قول: جواب سوالات مسابقات جاوا کاپ در سایت Quera

    تکرار یک حرف در یک رشته

    private static boolean isUniqueChars3(String str) {
    int checker =0 ;
    for (int i = 0; i < str.length(); i++) {
    int val = str.charAt(i) - 'a';
    if((checker & (val << 1)) > 0) return false;
    checker |= (val << 1);
    }
    return true;
    }

    البته اینطوریم میشه که بشه!!

    private boolean isUniqueChars(String str) {
    byte[] strByte = str.getBytes();
    boolean flag = false;
    for (int j = 0; j < strByte.length; j++) {
    for (int i = j; i < strByte.length; i++) {
    if(Byte.compare(strByte[j],strByte[i]) == 0){
    flag = true;
    break;
    }
    }
    if(flag) break;
    }
    return !flag;
    }

  4. #4

    نقل قول: جواب سوالات مسابقات جاوا کاپ در سایت Quera

    پیدا کردن یک مقدار بزرگتر بدون استفاده از بلوک های if

    private int max(int a, int b) {
    int c = a - b ;
    int k = (c >> 31) & 0x1;
    return a -(k * c );
    }

  5. #5

    نقل قول: جواب سوالات مسابقات جاوا کاپ در سایت Quera

    جمع کردن دو مقدار بدون استفاده از علامت ریاضی (+)

    public int plusNoRecursive(int a , int b)
    {
    int sum , carry ;
    while(b != 0){
    sum = a ^ b;
    carry = (a & b) << 1;
    a = sum; b = carry;
    }
    return a;
    }

  6. #6

    نقل قول: جواب سوالات مسابقات جاوا کاپ در سایت Quera

    اگر دوستان نظر مثبت داشته باشند ادامه خواهم داد...

  7. #7
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: جواب سوالات مسابقات جاوا کاپ در سایت Quera

    اگر تمام سوالاشو دارید، بدون جواب بذارید هم مفید خواهد بود. با جواب که چه بهتر

  8. #8

    نقل قول: جواب سوالات مسابقات جاوا کاپ در سایت Quera

    واقعیت اش اینه که هدفم اینه که ببینم برنامه نویس های دیگه چطوری مینویسن الگوریتم ها به چه شکلی بعد از چند وقت دیگه کلی چیز میتونیم ازش یاد بگیریم ولی متاسفانه باید بگم کسی خیلی مشارکت نمیکنه البته به جز شما دوست خوبم vahid-p حداقل یه مطلب مینویسید ولی دوستان دیگه نمیدونم چرا کسی هیچ مطلبی نمیگن نمیدونم حالا پست مفید نیست ویا موضوع دیگه ای هست؟!
    البته اگر هم پست مفید نیست انتقاد کردن که بد نیست حداقل یه نظر بدید!
    یعنی تا حالا کسی به مشکل نوشتن الگوریتم بر نخورده ممکن که این راه حلهایی که من نوشتم جایی استفاده نکنید ولی مطمئنا الگوی پیاده سازی و روش الگوریتم نویسی که همیشه بدردتون خواهد خورد وگرنه تا اونجا که من یادم میاد از سال 80 که من تو المپیاد کامپیوتر شرکت کردم تا همین الان که دوستان خوب وزحمتکشی که تو جاواکاپ دارن این مسابقات رو اجرا میکنن سطح سوالات و نوع به چالش کشیدن برنامه نویس تقریبا یکسان بوده چون هدف تقویت الگوریتم نویسی در زمینه برنامه نویسی کامپیوتر.

  9. #9
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: جواب سوالات مسابقات جاوا کاپ در سایت Quera

    دوستان دیگه نمیدونم چرا کسی هیچ مطلبی نمیگن نمیدونم حالا پست مفید نیست ویا موضوع دیگه ای هست؟!
    یکی از دلایلش اینه خیلی ها عضو نیستن و به عنوان مهمان بازدید میکنند. اخیرا کلا نه تو این انجمن بلکه همه انجمن های فارسی زبان با اومدن گروه های تلگرامی و... بحث ها و سوالاتشون رو میبرن اونجا مطرح می کنند و بدیش اینه که مطالب و سوالات و جوابهاشون به کار شخص دیگه ای نمیاد چون عمومی نیست و قابل جستجو نیست! و به همین دلیل وقت و زمان خیلی ها برای عده کمی هدر میره. و اصلا اینطور نیست که سوالات و مشارکت ها در کل کم شده، اتفاقا با وجود اندروید و رغبت خیلی ها به برنامه نویسی، سوالات بیشتر و بیشتر هم شده اما تو گروه ها مخفی شده. از طرفی با نوتیفیکشن های اپلیکیشن ها خیلی کارهاشون سریعتر پیش میره و مجبور نیستن اینجا یکی دو روز صبر کنن تا یک نفر به سوالشون پاسخ بده. هر چند نظم خاصی نداره گروه ها و من خوشم نمیاد.
    با این حال مطالبی که اینجا نوشته میشه در دسترس عموم هست و در کشورهای دیگه هنوز به این روش کار میشه، و برای خوندنش به خیلی ها ممکنه کمک کنه الان و در آینده، هر چند ممکنه مشارکت نباشه.

    اما در مورد این سوالات هر چند مربوط به جاوا کاپ هست ولی به نظرم خیلی الگوریتمی است. مثلا "جمع کردن دو عدد بدون +" یا "پیداکردن مقدار بزرگتر بدون if" و با هر زبانی تقریبا همین میشه. کاش سوالاتشون جوری بود که اگر از کلاس های متنوع جاوا استفاده نکنی، کارت به مراتب دشوارتر بشه. با این حال مفید هست و لااقل از دید الگوریتمی، نه لزوما یادگیری جاوا، چالش برانگیز و جالب هستند.
    من خودم دوست داشتم راه حل هایی که به ذهنم میاد رو بنویسم ولی فعلا به دلیل درس و دانشگاه خیلی فرصت مشارکت ندارم. اما همانطور که گفتم این سوالات و مطالب شما میمونه و من مثلا چند هفته بعد میتونم بیام سراغش به راحتی و این نظم و قابلیت جستجو باعث میشه بشه به مطالب برگشت و مطالعه کرد.
    آخرین ویرایش به وسیله vahid-p : دوشنبه 27 فروردین 1397 در 10:26 صبح

  10. #10

    نقل قول: جواب سوالات مسابقات جاوا کاپ در سایت Quera

    کاش سوالاتشون جوری بود که اگر از کلاس های متنوع جاوا استفاده نکنی، کارت به مراتب دشوارتر بشه.
    منهم موافقم با گفته شما.
    ولی هدف از بیان کردن این سوالات نوشتن برنامه به زبان جاوا نیست همونطور که میدونید تو مسابقات برنامه نویسی به زبانهای ++c و java و python میتونید برای یک سوال الگوریتم بنویسید پس دقیقا هدف من این بود که درباره الگوریتم ها نظر داده بشه.!
    والبته با اینم موافقم که تو کانالها الان فعالیت بیشتر هست .
    ولی متاسفانه جدیدا دیگه این سایت مثل چند سال پیش فعالیت نداره حالا یه سوال پیش میاد پس چرا StackOverFlow همچنان در راس انجمن هاست حتی با وجود git خود google بازهم به stack نمیرسه البته از نظر رفع مشکلات برنامه نویسی عرض میکنم ولی این تو ایران تقریبا برعکس شده فکر کنم خارجی ها کانال تو تلگرام ندارن
    بیخود نیست که 50 میلیون کاربر تو ایران داره فکر کنم تا چند وقت دیگه بعضی ها یه بات بنویسن برای تلگ که نون و سبزی براشون بخره شاید هم باشه
    وشاید هم یه دلیل دیگه اش منفعت مالی باشه فعالیت در کانالهای تلگرام بالاخره همین دیگه چه کنیم من که خودم به امثال این سایت بیشتر وابسته هستم در هر حال تمامی مطالب عنوان شده در این تاپیک نظر شخصی خودم قصد انتقاد از هیچ مرام و مسلکی ام تو هیچ سایت ویا اامثال اونم ندارم

  11. #11
    کاربر جدید
    تاریخ عضویت
    دی 1396
    محل زندگی
    خراسان شمالی
    پست
    14

    نقل قول: جواب سوالات مسابقات جاوا کاپ در سایت Quera

    سلام این جوابهای شما در حد آموزشهای جلسات دوره جاوای سایت جاواکاپ نیست و جلوتر از جلسات کدها را استفاده کرده اید لطفا به این نکته توجه داشته باشید می توانید با دانلود اسلاید جلسات با حدود آموزشها آشنا شوید مثلا در مورد اعداد کامل من این کد را نوشته ام :





    public class CompleteNumber {
    public static void main(String[] args){
    for(int i=1;i<10000;i++)
    isCompleteNumber(i);


    }
    public static void isCompleteNumber(int a){
    if(f(a))
    System.out.println(a);
    }
    public static boolean f(int x){
    int d=0;
    for(int y=1;y<x;y++){
    if(x%y==0)
    d=y+d;
    }
    if(x==d)
    return true;
    return false;
    }


    }

    البته ببخشید کددرست paste نمی شود.

تاپیک های مشابه

  1. اجرا نشدن دوباره كدهاي جاوا اسكريپت در سايت بعد رفرش سايت
    نوشته شده توسط farid65 در بخش طراحی وب (Web Design)
    پاسخ: 5
    آخرین پست: دوشنبه 02 تیر 1393, 03:25 صبح
  2. پاسخ: 9
    آخرین پست: پنج شنبه 11 خرداد 1391, 12:23 عصر
  3. گفتگو: پیشنهاد برگزاری مسابقات در سایت با تعیین جایزه
    نوشته شده توسط mostafarastin239 در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 1
    آخرین پست: جمعه 05 شهریور 1389, 07:23 صبح
  4. سوال: هنگ كردن WebBrowser در سايت هاي ي جاوا اسكريپت
    نوشته شده توسط javadt در بخش برنامه نویسی در 6 VB
    پاسخ: 7
    آخرین پست: چهارشنبه 02 تیر 1389, 14:55 عصر
  5. کمک در مورد نحوه قرار دادن کدهای جاوا در سایت
    نوشته شده توسط iran.ir در بخش طراحی وب (Web Design)
    پاسخ: 12
    آخرین پست: پنج شنبه 25 بهمن 1386, 11:11 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •