30/09/2018, 16:12
[Wiki] Một số hàm toán học C++
Các hàm trong chương trinh
UCLN2
template< class T> UCLN2(T a, T b);
Hàm này sẽ tính Ước chung lớn nhất cuả 2 số a,b
đây là toàn bộ code
#include <cstdio>
#include <cstdlib>
#include <cstdarg>
#include <iostream>
using namespace std;
#define CONCAT(name,type) name##_##type
#define CREATE(name,type)
type CONCAT(name,type)(){
type tmp;
cin>>tmp;
return tmp;
}
CREATE(get,int)
CREATE(get,long)
CREATE(get,char)
CREATE(get,double)
CREATE(get,float)
template <class T>
T UCLN2(T a,T b){
if(a==0) return b;
return UCLN2(b%a,a);
}
template <class T>
T BCNN2(T a,T b){
return a*b/UCLN2(a,b);
}
template <class T>
T UCLN(int n,...){
T a,b;
va_list vl;
va_start(vl,n);
a=va_arg(vl,T);
for(int i=1;i<n;++i){
b=va_arg(vl,T);
a=UCLN2<T>(a,b);
}
return a;
}
template <class T>
T BCNN(int n,...){
T a,b;
va_list vl;
va_start(vl,n);
a=va_arg(vl,T);
for(int i=1;i<n;++i){
b=va_arg(vl,T);
a=BCNN2<T>(a,b);
}
return a;
}
int main(){
long a=BCNN<long>(3,get_long(),get_long(),get_long());
printf("%ld",a);
return 0;
}
##Edited:
- Mình vừa viết thêm đoạn macro để tiện cho input nó sẽ tạo ra các hàm get_int(),get_long(),get_float()…
#define CONCAT(name,type) name##_##type
#define CREATE(name,type)
type CONCAT(name,type)(){
type tmp;
cin>>tmp;
return tmp;
}
CREATE(get,int)
CREATE(get,long)
CREATE(get,char)
CREATE(get,double)
CREATE(get,float)
Bài liên quan
@Gio ơi, sao em viết trong này - Dev Chat? Có phải em muốn ủng hộ project Open Source thư viện C++ không?
Em viết để mở đầu để khuyến khích (à nhầm) kích thích các bạn tham gia
Nice shot Nhưng mà sao nhỉ, anh có cảm giác khó khó hiểu sao đấy ^^, có cách nào mình trình bày dễ hiểu hơn không ta?
Ví dụ anh thấy cách trình bày của CPlusPlus.Com khá hay. Sao mình không bắt chước cái cấu trúc nhỉ, đầu tiên là tên hàm, các tham số và ví dụ.
Thư viện mà Càng phức tạp thì có nhiều người nghiên cứu!
Oh no, ít nhất là nó phải đơn giản lúc đầu để người ta bị dụ vào xem chứ hehe, anh thấy cách trình bày ở project PHP khá ổn.
P/S: @Gio có muốn post của em thành WikiPost không?
P/S2: Anh nghĩ là ta nên có thêm nút like lần thứ 2 cho mấy topic như thế này.
Chỉnh sửa mệt quá
À há, từ từ sẽ quen, anh là sửa nhiều nhất forum. Đi đâu cũng sửa hết trơn. Nếu mình chuyển thành Wiki Post thì các bạn khác nếu thích có thể sửa dùm em.
Nhưng cũng có thể sửa không theo ý em, rất may là ta có thể delete chỉnh sửa đó.
Để wikiPost đi anh ạ
Yes Sir. Từ nay ai có Trust Level 1 sẽ sửa được bài Wiki, sau này có thể sẽ thay đổi.
I moved 2 posts to a new topic: Có nên chỉ cho phép level 2 hoặc 3 sửa Wiki Post
I moved 3 posts to an existing topic: Có nên chỉ cho phép level 2 hoặc 3 sửa Wiki Post?