Cách chia một số thành các phần bằng nhau trong C++
Giả sử chúng ta có một số n. Chúng ta phải tìm số cách chia một số thành các phần (a, b, c và d) sao cho a = c và b = d. Vì vậy, nếu số là 20, thì đầu ra sẽ là 4. Như [1, 1, 9, 9], [2, 2, 8, 8], [3, 3, 7, 7] và [4, 4, 6, 6] Show Vì vậy, nếu N là số lẻ, thì câu trả lời sẽ là 0. Nếu số đó chia hết cho 4 thì đáp án sẽ là n/4 – 1 ngược lại n/4 Ví dụBản thử trực tiếp #include using namespace std; int countPossiblity(int num) { if (num % 2 == 1) return 0; else if (num % 4 == 0) return num / 4 - 1; else return num / 4; } int main() { int n = 20; cout << "Number of possibilities: " << countPossiblity(n); } đầu raNumber of possibilities: 4 Giả sử tôi muốn chia một số (514) thành 20 phần xấp xỉ bằng nhau và tôi muốn biết mỗi số sẽ là bao nhiêu. Vì vậy, ví dụ, nếu tôi muốn chia 10 thành 3 phần, tôi sẽ muốn một số như 3, 6, 10 Tôi biết tôi có thể làm điều gì đó tương tự như những gì tôi muốn cắt
mang lại cho tôi đầu ra sau
Tôi có thể thấy đó là những khoảng ngắt gần đúng, nhưng làm cách nào tôi có thể lấy 20 số nguyên có các khoảng ngắt? Để phân phối số $n$ thành các phần của $p$, bạn sẽ tính “phép chia số nguyên cắt ngắn” của $n$ chia cho $p$ và phần còn lại tương ứng Về mặt toán học, đó là (giả sử rằng cả $n$ và $p$ đều là số nguyên dương) $$ d = \left\lfloor \frac np \right\rfloor \, , \quad r = n \bmod p = n-pd \ . $$ Trong nhiều ngôn ngữ lập trình, bạn sẽ làm điều gì đó như
Khi đó $$n = pd + r = r(d+1) + (p-r)d $$ sao cho phân vùng mong muốn là $$ \underbrace{d+1, \ldots, d+1}_{r \text{ Giả sử bạn muốn chia một số nguyên, e. g. 20, thành các phần bằng nhau của 3 và chia đều phần còn lại cho các nhóm. Kết quả của phép toán như vậy sẽ là 3 số nguyên sau 7,7,6 20 có thể được chia thành 3 phần bằng nhau của 6 và chúng ta có số dư là 20 – 6 * 3 = 2. 2 sau đó được thêm dưới dạng 1 và 1 vào hai nhóm 6 đầu tiên. Kết quả là phân phối ít nhiều bằng nhau của số nguyên bắt đầu Nhận một số dương từ người dùng và in từng chữ số của một số ví dụ 1số = 12 đầu ra 2 1 ví dụ 2số = 123 đầu ra 3 2 1 Hãy thiết kế một logicsố = 12 Đầu tiên chúng ta hãy suy nghĩ, làm thế nào để tách chữ số cuối cùng 2 từ số 12 Vì các số là số thập phân (cơ số 10), phạm vi của mỗi chữ số phải từ 0 đến 9 Vì vậy, chúng ta có thể dễ dàng thực hiện bằng cách thực hiện modulo 10 Thích, 12 % 10 => 2 ( ta đã tách chữ số 2 từ số 12) Bây giờ, chúng ta phải tách chữ số 1 từ số 12 Điều này có thể đạt được bằng cách chia số cho 10 và lấy modulo 10 Thích, 12/10 => 1 Bây giờ lấy modulo 10 1 % 10 = 1 Sử dụng phương pháp trên, chúng ta có thể tách từng chữ số từ một số Hợp lýCho đến khi số trở thành 0 làm Lấy số % 10 và in kết quả Chia số đó cho 10. (số = số / 10) Ví dụHãy lấy num = 123 Bước 1Num = 123 (không bằng 0) Mod = 123% 10 ==> 3 Số = 123/10 ==> 12 Bước 2Num = 12 (không bằng 0) Mod = 12% 10 ==> 2 Số = 12/10 ==> 1 Bước 3Num = 1 (không bằng 0) Chế độ = 1% 10 ==> 1 Số = 1/10 ==> 0 Bước 4Num = 0 (bằng 0, dừng quá trình) Giải thích bằng hình ảnhChương trìnhVí dụ /***************************** *Program : split the digits * *Language : C * *****************************/ #include int main() { int num; scanf("%d",&num); while(num > 0) //do till num greater than 0 { int mod = num % 10; //split last digit from number printf("%d\n",mod); //print the digit. num = num / 10; //divide num by 10. num /= 10 also a valid one } return 0; } chạy nó Chủ đề bạn có thể thíchLàm cách nào để chia một số thành hai phần trong C?Đây là mã của tôi. int a; . phân công. c. division.
Làm thế nào để chia một số trong C?printf("Nhập cổ tức. "); scanf("%d", ÷nd); printf("Nhập số chia. "); scanf("%d", &divisor); Sau đó thương được đánh giá bằng cách sử dụng / (toán tử chia) và được lưu trữ trong thương. thương = số bị chia / số bị chia ; . |