کرم های کامپیوتر





قالب وبلاگ در حال ویرایش شدن!

ممکن است اشکالاتی در قالب پیش بیاید
بنابراین پیشاپیش متاسفیم!

کرم های کامپیوتر

من و دوستم دو تا کرمیم که داریم تو سیستم ها وُل می خوریم و بعضی وقت ها براتون چیزایی که تو این وُل خوردن ها یاد گرفتیم رو می نویسیم!!!!!

تبلیغات

لاگ بندرعباس راه افتاد!

برای اطلاعات بیشتر به وبلاگ لاگ مراجعه کنید.
نویسنده وبلاگ ما شوید

شما می توانید در قالب نویسنده در کنار ما باشید و در این وبلاگ فعالیت کنید

ربات تلگرامی ما
نویسندگان
آخرین نظرات
  • ۱۴ تیر ۹۸، ۱۵:۴۶ - فرهاد حسن پور
    ali boood.

پاسخ چالش ترک عملگر ها

سه شنبه, ۷ خرداد ۱۳۹۸، ۰۳:۵۱ ب.ظ

مهلت ارسال پاسخ به چالش تمام شد و این هم کد من برای جواب چالش ترک عملگر ها

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;

namespace multiplication
{
    //multiplication whithout using any operator (boolean operators (&& || !) are permited).
    //solved by Behnam Simjoo on 2019/05/10
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                Console.Clear();
                Console.Write("a=");
                int a = int.Parse(Console.ReadLine());
                Console.Write("b=");
                int b = int.Parse(Console.ReadLine());
                int res = f(a, b);
                Console.WriteLine($"---------------------\nResult: {res}");
                Console.ReadKey();
            }
        }
        static int f(int a,int b)
        {
            if (a < b) { int t = a;  a = b;  b = t; }  //for more speed
            int temp = a;
            for(int i = 1; i < b; i=Sum(i,1))  //using Sum function in place of ++ operation
                a = Sum(a, temp);
            return a;
        }
        static int Sum (int a,int b)
        {
            bool[] ab = Convert.ToString(a, 2).PadLeft(32, '0').Select(s=>s=='1').ToArray();
            bool[] bb = Convert.ToString(b, 2).PadLeft(32, '0').Select(s=>s=='1').ToArray();
            //converting int to bin string and converting 0 to false and 1 to true
            int carry = 0,result=0;
            do {
                carry = 0;
                result = 0;
                bool[] r = new bool[32];
                List<bool> c = new List<bool>(32);
                r=ab.Select((s, i) => s && bb[i] ? false : (s || bb[i])).ToArray();     //Boolean sum without carry
                c.AddRange(ab.Select((s, i) =>s && bb[i]).ToArray());                   //Boolean sum calcuting carry

                // a | b || result of a+b | carry
                //---|---||---------------|------
                // 0 | 0 ||       0       |   0
                // 1 | 0 ||       1       |   0
                // 0 | 1 ||       1       |   0
                // 1 | 1 ||       0       |   1

                //     a=19=00010011|
                //      +            }=> r=00001010 , c=00010001
                //     b=25=00011001|
                //       -----------
                //result=44=00101100
                //shifting c to left
                c.Add(false);
                c.RemoveAt(0);
                // c=00010001 => shift => c=00100010
                ab = c.ToArray();
                bb = r;
                //seting ab = carry and bb = r to continue sum process until carry became zero
                c.Reverse();
                r = r.Reverse().ToArray();
                //reversing boolarrays for BitArray
                Array A = new int[2];
                BitArray res = new BitArray(r);
                res.CopyTo(A, 0);
                BitArray cry = new BitArray(c.ToArray());
                cry.CopyTo(A, 1);
                carry = (int)A.GetValue(1);
                result = (int)A.GetValue(0);
                //converting binary to single integer value
                //then cuntinue process until carry != 0
                //1st next step: r=00001010, c=00100010 => r+c => r=00101000, c=00000100
                //2nd next step: r=00101000, c=00000100 => r+c => r=00101100, c=00000000 => result = 44
            } while (carry != 0);
            return result;
        }
    }
}

 

  • BSimjoo

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

کد ها را در apaste.info وارد کرده و سپس لینک آن را در نظر قرار دهید

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی