Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as C++ by Tun ( 5 years ago )
#include<iostream>
using namespace std ;
#include<math.h>
#include<conio.h>
#include <io.h> // thư viện định nghĩa hàm _setmode
#include <fcntl.h> // thư viện định nghĩa _setmode
void Tach(long long int &n) ; void So(int &n) ; void HauTo(int &i , int &n) ; void So1(int &n) ; void So2(int &n) ; void So3(int &n) ;
void VietSo(long long int &n )
{
if(n < 0)
{
n *= -1 ;
wcout<<"-";
}
long long int temp = n ;
int chuso = log10((double)n) + 1 ;
int dauphay = (chuso - 1) / 3 ;
long long int So = pow(10.0 , dauphay * 3);
int Cum = temp / So ;
temp %= So ;
wcout<<Cum ;
dauphay-- ;
for(dauphay ; dauphay >= 0 ; dauphay--)
{
So = pow(10.0 , dauphay * 3);
Cum = temp / So ;
temp %= So ;
if(dauphay > 0)
{
wprintf(L",%03d",Cum); // %03d : chỗ nào trống thì cho là 0 (vd 5 : 005) - số '3' là cụm 3 số
}
else
{
wprintf(L",%03d ",Cum);
}
}
}
void Tach(long long int &n)
{
long long int n1 = n ;
VietSo(n);
if(n1 < 0)
{n1 *= -1 ;
wcout<<"âm ";}
int dauphay ;
long long int temp = n ;
long long int chuso = (long long int)floor(log10((double)n) + 1);
int i = (chuso - 1) / 3;
long long int So = (long long int)pow(10 ,(double)i * 3) ;
int Cum = temp / So ;
temp %= So ;
wcout<<endl ;
wcout<<"( ";
if(Cum != 0)
{
if(Cum < 10)
So1(Cum);
else if(Cum < 100)
So2(Cum);
else if(Cum < 1000)
So3(Cum);
HauTo(i , Cum);
i-- ;
dauphay = i ;
}
for(i ; i >= 0 ; i--)
{
So = (long long int)pow(10 ,(double)i * 3) ;
Cum = temp / So ;
temp %= So ;
if(Cum != 0)
{
So3(Cum);
HauTo(i , Cum);
}
else
{
if(dauphay % 3 == 0 && dauphay != 0 && i % 3 == 0)
{
wcout<<L"tỷ ";
}
dauphay-- ;
}
}
wcout<<")";
}
void So1(int &n)
{
if(n == 1)
wcout<<L"một ";
if(n == 2)
wcout<<L"hai ";
if(n == 3)
wcout<<L"ba ";
if(n == 4)
wcout<<L"bốn ";
if(n == 5)
wcout<<L"năm ";
if(n == 6)
wcout<<L"sáu ";
if(n == 7)
wcout<<L"bảy ";
if(n == 8)
wcout<<L"tám ";
if(n == 9)
wcout<<L"chín ";
if(n == 0)
wcout<<L"không " ;
}
void So2(int &n)
{
int temp = n ;
n = n % 10 ;
temp = temp / 10 ;
if(temp == 1)
{
wcout<<L"mười ";
if(n == 5)
{
wcout<<L"lăm " ;
}
else if(n != 0)
{
So1(n);
}
}
else if(temp == 0)
{
if(n != 0)
{
wcout<<L"lẻ ";
So1(n);
}
}
else
{
So1(temp);
wcout<<L"mươi ";
if(n == 5)
{
wcout<<L"lăm " ;
}
else if(n == 1)
{
wcout<<L"mốt ";
}
else if(n != 0)
{So1(n);}
}
}
void So3(int &n)
{
int temp1 = n ;
int temp2 = n ;
if(temp1 % 100 != 0)
{
temp2 /= 100 ;
So1(temp2);
wcout<<L"trăm ";
n %= 100 ;
So2(n);
}
else if(temp1 % 100 == 0)
{
temp2 /= 100 ;
So1(temp2);
wcout<<L"trăm ";
}
}
void HauTo(int &i , int &n)
{
if(i % 3 == 1)
{
wcout<<L"nghìn ";
}
if(i % 3 == 2)
{
wcout<<L"triệu ";
}
if(i % 3 == 0)
{
if(i != 0 )
wcout<<L"tỷ ";
}
}
void TuDong()
{
int so ;
long long int tong = 0 ;
Tun :
char n = getch();
if(n == '1' ||n == '2' ||n == '3' ||n == '4' ||n == '5' ||n == '6' ||n == '7' ||n == '8' ||n == '9' ||n == '0'||n == 8)
{
system("cls");
}
wcout<<L"Số bạn muốn đọc : ";
if(n == '1')
so = 1 ;
if(n == '2')
so = 2 ;
if(n == '3')
so = 3 ;
if(n == '4')
so = 4;
if(n == '5')
so = 5 ;
if(n == '6')
so = 6 ;
if(n == '7')
so = 7 ;
if(n == '8')
so = 8 ;
if(n == '9')
so = 9 ;
if(n == '0')
so = 0 ;
tong = tong * 10 + so ;
if(n == 8)
{tong = (int)(tong / 100 );}
Tach(tong);
wcout<<endl ;
wcout<<endl ;
/*wcout<<L"Nếu bạn muốn thử lại vui lòng nhấn c (hoặc C) !"<<endl ;*/
wcout<<L"Nếu bạn muốn thoát chương trình vui lòng nhấn ESC để thoát !"<<endl;
if(n == 27)
{goto Thoat ;}
goto Tun ;
Thoat : ;
}
int main()
{
_setmode(_fileno(stdin), _O_U16TEXT); // kích hoạt bảng mã UNICODE
_setmode(_fileno(stdout), _O_U16TEXT);
wcout<<L"Số bạn muốn đọc : ";
TuDong();
/*system("pause");*/
return 0 ;
}
Revise this Paste
Parent: 119200