প্রোগ্রামিং সংক্রান্ত নানান বই ঘরে বসে অনলাইনে অর্ডার করতে ক্লিক করুন এখানে

বাংলা ভাষায় পাইথন দিয়ে প্রোগ্রামিং শেখার ফ্রি বই - http://pybook.subeen.com

গৌণিক / ফ্যাক্টরিয়াল

সমস্যাটি পড়তে এবং সমাধান জমা দিতে ভিজিট করুন দ্বিমিক অনলাইন জাজ।
লিঙ্কঃ https://dimikoj.com/problems/11/

৫২টি প্রোগ্রামিং সমস্যা ও সমাধান বইতে এই সমস্যার সমাধান নিয়ে আলোচনা করা হয়েছে।

১৫টি মন্তব্য:

  1. ফ্যাক্টোরিয়ালের জন্য unsigned long int ডেটা টাইপ ব্যবহার করলে ১৫ এর ফ্যাক্টোরিয়ালের ভুল মান রিটার্ন করে । long long int ব্যবহার করে সঠিক উত্তর পাওয়া গেছে । কেন ?

    উত্তর দিনমুছুন
    উত্তরগুলি
    1. unsigned long int ১৫ এর ফ্যাক্টরিয়াল ধরার মত যথেষ্ট বড় নয়, long long int যথেষ্ট বড়

      মুছুন
  2. The range of unsigned long int is >> 0 to 4,294,967,295
    The value of factorial 15 is out of range.
    So it will give you a garbage value.

    উত্তর দিনমুছুন
  3. আমি যদি n =100 ইনপুট দিতে চাই তাহলে unsigned long long int, এই সীমা তে হবে না!! n = ১০০ এর জন্য আমি কি করতে পারি???? ওইটা নিয়ে একটু আলোচনা করলে উপকৃত হতাম :D

    উত্তর দিনমুছুন
    উত্তরগুলি
    1. Unsigned Long Long দিয়ে n = 20 এর বেশি ফ্যাক্টোরিয়াল কোনো ভাবেই প্রিন্ট করা সম্ভব নয় । এজন্য আপনাকে বিগ ইন্টেজার বা স্ট্রিং ম্যানিপুলেশন এর সাহায্য নিতে হবে । এক কথায় স্ট্রিং এর যোগ বিয়োগ গুন ভাগ করা জানতে হবে ।

      মুছুন
  4. yay!! ive used double type and used %.0lf while printing. it worked!!
    and then accepted!!
    :-)

    উত্তর দিনমুছুন
  5. sir code টায় problem কোথায়?
    #include

    int main()
    {
    int i,t;
    unsigned long int num,p,j;

    scanf("%d",&t);
    for(i=0;i<t;i++)
    {
    scanf("%lu",&num);
    p=1;
    for(j=2;j<=num;j++)
    {
    p=p*j;
    }
    printf("%lu\n",p);
    }
    return 0;
    }

    উত্তর দিনমুছুন
  6. এই মন্তব্যটি লেখক সরিয়েছেন।

    উত্তর দিনমুছুন
  7. #include
    int main()
    {
    long long int i,j,n,a,b;
    long long int s=1;
    scanf("%lld",&n);
    long long int ara[n];
    for(i=0;i=1;j--)
    {
    s=s*j;
    }

    ara[i]=s;
    s=1;
    }
    for(i=0;i<n;i++)
    {
    printf("%lld\n",ara[i]);
    }



    return 0;
    }

    its working well.but why not accepting?

    উত্তর দিনমুছুন
  8. আমি যাদের প্লাগইন ব্যবহার করছি, ওদের সাইট ডাউন। আপাতত অপেক্ষা করা ছাড়া উপায় নেই।

    উত্তর দিনমুছুন
  9. Hello Subeen bhaya, I solved this problem and submitted it. I am not sure why my code hasn't been accepted. It worked fine when I tested it with the numbers in the problem.

    #include
    int main()
    {
    int n,num;
    scanf("%d",&num);

    while(num--)
    {
    long long int fact=1;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
    fact=fact*i;
    }
    printf("%lld\n",fact);
    }

    return 0;
    }

    উত্তর দিনমুছুন

এখানে বিষয়সংশ্লিষ্ট মন্তব্য কিংবা প্রশ্ন করা যাবে। বাংলায় মন্তব্য করার সময় বাংলা হরফে লিখতে হবে। আর রোমান হরফে লিখলে ইংরেজিতে লিখতে হবে। নতুবা মন্তব্য প্রকাশ করা হবে না। ধন্যবাদ।