Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Viết chương trình tính tổ hợp chập ~k~ của ~n~ phần tử có công thức như dưới đây:
$$C_{n}^{k} = \frac{n!}{k!(n-k)!}$$
Giới hạn
- ~ 1 \le k \le n \le 25 ~
Input
Lần lượt là 2 số n, k cách nhau bởi khoảng trắng
Output
Kết quảtổ hợp chập ~k~ của ~n~
Sample
Input #1
5 2
Output #1
10
Bình luận
n, k = map(int,input().split()) def gt(n): if n == 0 or n == 1: return 1 else: return(ngt(n-1)) print(int(gt(n)/(gt(k)gt(n-k))))
include<iostream>
using namespace std; int main(){ long long k,n; long long a=1; long long b=1; cin>>n>>k; if(k==n||k==0){ cout<<"1"; }else{ for(int i=n-k+1;i<=n;i++){ a=i; } for(int j=1;j<=k;j++){ b=j; } cout<<a/b; } } C++ AC ae tham khảo
đề không rõ ràng nên sai test nhiều
include <iostream>
include<iomanip>
using namespace std; long double giaithua(long double n) { if(n==1) return 1; return n*giaithua(n-1); }
int main() { long double n, k; cin>>n>>k; if(n>=k) { if (n>=1 && k>=1) { if(k<=25 &&n<=25) { cout<<giaithua(n)/(giaithua(k)*giaithua(n-k)); } } } else { cout <<"MATH ERROR"; return 0; } return 0; }
C++ ĐÃ AC NHAA CHO MÌNH XIN 1 VOTE Ạ
include <bits/stdc++.h>
using namespace std;
int main()
{
}
Cho bạn nào chưa AC hết được, thì nếu cái này các bạn tính giai thừa hay là chạy for gì đó nó đều bị tràn số nhé( test case 5). Để AC được hết thì các bạn cần dùng tam giác pascal nhé. Code full AC cho ae tham khảo:
n,k=map(int,input().split()) if (n>k) and (n>0) and (k>0): S=1 j=1 A=1 for i in range (2,n+1): S=i for a in range (2,k+1): j=a for b in range (2,(n-k)+1): A=b c=S/(jA) print(int(c)) else: print("Math Error")
include <bits/stdc++.h>
using namespace std;
int main() {
return 0;
}
Bài mình dùng hàm thôi nhé
/#include<iostream> using namespace std; unsigned long long gt(int n) {unsigned long long x=1; if ((n==0)||(n==1)) return x;else for (int i=1;i<=n;i++) x=i; return x; } int main() { long long kq=1;int k,n,t;cin>>n>>k; t=n-k; if (t>k){ for (int i=t+1;i<=n;i++) kq=i;kq/=gt(k); } else {for (int i=k+1;i<=n;i++) kq*=i;kq/=gt(t);} cout<<kq; return 0;
}
test case 5 là gì v
25 3 đó
cho mình xin testcase 3 với mn ơi
n = 15 k = 10
include <bits/stdc++.h>
define int long long
using namespace std;
int n, k; int gt(int n) {
} int C(int k, int n) {
} void solve() {
}
main() { ios::syncwithstdio(false); cin.tie(nullptr);cout.tie(nullptr);
}
include <stdio.h>
// tinh luy thua 1 so
long long luy_thua(long long a){ long long res=1; for(long long i=res; i<= a; i++){ res*=i; } return res; }
//tinh to hop chap k cua n
long long tohop(long long n, long long k){ long long tohopchapkcuan=luythua(n)/(luythua(k)*luythua(n-k)); return tohopchapkcuan; } int main(){ long long n, k; scanf("%lld %lld", &n, &k); printf("%lld", to_hop(n, k)); } cho hỏi sao sai test 5 vậy ạ
To hop
def toHop(k,n):
n,k = [int(x) for x in input().split()]
print(toHop(k,n))
hàm tính C bằng đệ quy cho ai cần int C(int a, int b) { if (a == 0 or a == b) return 1; if (a == 1) return b; return C(a - 1, b - 1) + C(a, b - 1); }
case cuối là gì v mn
help với ,C++20
mong admin lên cho hiện phần dữ liệu test case như các web code leet code để khi sai tìm lỗi cho dễ ạ
bài này ăn đc case cuối mấy bạn xài qhd dựa theo tam giác pascal!
include <iostream>
bool check (int value){ if (1 <= value && value <= 25) return 1; else return 0;
} long long C(int n , int k){ long long tu = 1, mau = 1; for (int i = n ; (n - k) < i; i--){ tu *= i; } for (int i = k ; 1 <= i ; i--){ mau *= i; } return tu/mau;
} int main(){ int n, k; std::cin >> n >> k; if (k <= n && check(n) && check(k)) std::cout << C(n,k); return 0;
}
<C++>
java 8 nhe
import java.util.*;
public class Combination {
}
// chương trình tính tổ hợp chập k của n phần tử
Công thức bên trên chỉ chạy được một phần thôi, chạy số to hơn tí là tràn bộ nhớ rồi nên phải dùng công thức truy hồi mới đúng.
testcase cuối là gì ấy nhỉ
25 voi 3 do loi tran so ban xem lai nhe