Welcome, guest! Login / Register - Why register?
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
Your Name: Code Language: