Rumah >pembangunan bahagian belakang >Tutorial C#.Net >Faktorial dalam C#
Dalam bahagian ini, kita akan melihat faktorial dalam c# secara terperinci. Faktorial ialah konsep yang sangat penting dalam bidang matematik seperti dalam algebra atau dalam analisis matematik. Ia dilambangkan dengan tanda seru (!). Faktorial ialah sebarang integer positif k, yang dilambangkan dengan k! Ia adalah hasil darab semua integer positif yang kurang daripada atau sama dengan k.
k!= k * (k-1) *(k-2) *(k-3) *(k-4) *…….3 *2 * 1.
Logik untuk Mengira Faktorial Nombor Diberi
Sebagai contoh, jika kita ingin mengira faktorial bagi 4 maka ia akan menjadi,
Contoh #1
4! = 4 * (4-1) *(4-2) * (4-3)
4! = 4 * 3 * 2 * 1
4! = 24.
Jadi faktorial bagi 4 ialah 24
Contoh #2
6! = 6 * (6-1)* (6-2)* (6-3) * 6-4)* (6-5)
6! = 6*5*4*3*2*1
6! = 720
Jadi faktorial bagi 6 ialah 720
Begitu juga, dengan menggunakan teknik ini kita boleh mengira faktorial mana-mana integer positif. Perkara penting di sini ialah faktorial bagi 0 ialah 1.
0! =1.
Terdapat banyak penjelasan untuk ini seperti untuk n! di mana n=0 menandakan hasil darab tanpa nombor dan ia adalah sama dengan entiti darab. {displaystyle {binom {0}{0}}={frac {0!}{0!0!}}=1.}
Fungsi faktorial kebanyakannya digunakan untuk mengira pilih atur dan gabungan dan juga digunakan dalam binomial. Dengan bantuan fungsi faktorial, kita juga boleh mengira kebarangkalian. Contohnya dalam berapa banyak cara kita boleh menyusun k barang. Kami mempunyai k pilihan untuk perkara pertama, Jadi untuk setiap pilihan k ini, kami tinggalkan dengan pilihan k-1 untuk perkara kedua (kerana pilihan pertama telah pun dibuat), jadi sekarang kami mempunyai pilihan k(k-1) , jadi sekarang untuk pilihan ketiga kita mempunyai k(k-1)(k-2) pilihan dan seterusnya sehingga kita mendapat satu perkara yang tinggal. Jadi secara keseluruhan kita akan mempunyai k(k-1)(k-2)(k-3)…3..1.
Satu lagi contoh masa nyata sepatutnya kita akan pergi ke majlis perkahwinan dan kita mahu memilih blazer yang hendak diambil. Jadi, katakan kita mempunyai blazer k dan tetapi mempunyai ruang untuk mengemas satu-satunya n. Jadi berapa banyak cara kita boleh menggunakan n blazer daripada koleksi k blazer k!/(n!.(k-n)!).
Di bawah ialah contoh untuk menunjukkan cara kita boleh mengira pemfaktoran sebarang nombor dengan cara yang berbeza,
1. Dalam contoh ini, gelung for digunakan untuk mengira pemfaktoran nombor.
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Factorial { class Program { static void Main() { int a = 7; int fact = 1; for (int x = 1; x <= a; x++) { fact *= x; } Console.WriteLine(fact); Console.ReadLine(); } } }
Dalam contoh ini, pembolehubah jenis data integer dimulakan dan untuk gelung digunakan untuk mengira nombor.
Output:
2. Dalam contoh ini, pengguna dibenarkan memasukkan nombor untuk mengira pemfaktoran.
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FactorialExample { class Program { static void Main() { Console.WriteLine("Enter the number: "); int a = int.Parse(Console.ReadLine()); int fact = 1; for (int x = 1; x <= a; x++) { fact *= x; } Console.WriteLine(fact); Console.ReadLine(); } } }
Output:
1. Dalam contoh ini, gelung for digunakan untuk mengira pemfaktoran nombor.
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Factorial { class Program { static void Main() { int a = 10; int fact = 1; while (true) { Console.Write(a); if (a == 1) { break; } Console.Write("*"); fact *= a; a--; } Console.WriteLine(" = {0}", fact); Console.ReadLine(); } } }
Output:
2. Dalam contoh ini, gelung while digunakan untuk mengira pemfaktoran nombor.
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FactorialExample { class Program { static void Main() { Console.WriteLine("Enter the number: "); int a = int.Parse(Console.ReadLine()); int fact = 1; while(true) { Console.Write(a); if(a==1) { break; } Console.Write("*"); fact *= a; a--; } Console.WriteLine(" = {0}", fact); Console.ReadLine(); } } }
Output:
1. Dalam contoh ini, do-while digunakan untuk mengira pemfaktoran nombor.
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Factorial { class Program { static void Main() { int a = 6; int fact = 1; do { fact *= a; a--; } while (a > 0); Console.WriteLine("Factorial = {0}", fact); Console.ReadLine(); } } }
Output:
2. Dalam contoh ini, do-while digunakan untuk mengira pemfaktoran nombor.
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FactorialExample { class Program { static void Main() { Console.Write("Enter the number: "); int a = int.Parse(Console.ReadLine()); int fact = 1; do { fact *= a; a--; } while (a > 0); Console.WriteLine("Factorial = {0}", fact); Console.ReadLine(); } } }
Output:
1. Dalam contoh ini, fungsi rekursif digunakan untuk mengira faktorial nombor.
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Factorial { class Program { static void Main() { int n= 5; long fact = Fact(n); Console.WriteLine("factorial is {1}", n, fact); Console.ReadKey(); } private static long Fact(int n) { if (n == 0) { return 1; } return n * Fact(n - 1); } } }
Dalam contoh di atas, pemfaktoran nombor dicapai dengan menggunakan rekursi. Idea di sebalik rekursi adalah untuk menyelesaikan masalah dalam keadaan kecil. Oleh itu, apabila fungsi mencipta gelung dan memanggil dirinya sendiri, ia dipanggil rekursi.
Output:
2. Dalam contoh ini, fungsi rekursif digunakan untuk mengira faktorial nombor.
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FactorialExample { class Program { static void Main() { Console.WriteLine("Enter the number"); int n = Convert.ToInt32(Console.ReadLine()); long fact = Fact(n); Console.WriteLine("factorial is {1}", n, fact); Console.ReadKey(); } private static long Fact(int n) { if (n == 0) { return 1; } return n * Fact(n - 1); } } }
Output:
Jadi konsep faktorial adalah sangat penting dalam bidang matematik seperti binomial dan pilih atur dan kombinasi, dan ini adalah bagaimana kita boleh mencetak faktorial sebarang nombor dengan menggunakan pelbagai kaedah seperti untuk, sambil, lakukan-sementara, fungsi , dsb.
Atas ialah kandungan terperinci Faktorial dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!