Khôi Ròm
February 08, 2021 - Monday, 8 February 2021
Ba của Bánh làm nghề ghi hóa đơn tiến điện, công việc hàng ngày là đi ghi số liệu của khách hàng chỉ gồm
ba thông tin: họ tên khách hàng, số dùng củ, số dùng mới. Sau khi có thông tin thì việc tính tiền điện rất đơn
giản bằng công thức: số tiền = (số dùng mới - số dùng củ)* 1200.
Tuy nhiên số liệu ông ấy đưa về không đúng quy định như Bánh mong muốn,
ví dụ:
Tran Anh Hung, 123, 456
Le TUAN; 234; 456
Nguyen Minh Tam/124/333
Trình Anh Tuan-456-234
Nhưng sau khi quan sát kỹ, Bánh nhận thấy dữ liệu Ba đưa về có quy tắc để phân cách giữa các mục thông
tin Ba dùng các ký tự sau: ’-’, ’_’, ’;’, ’.’, ’,’, ’/’, ’|’.
Task
Bánh chưa biết lập trình, các anh chị sinh viên hãy giúp Bánh tính tiền cho Ba.
Input
• Gồm một dòng với ba dữ kiện là: họ tên khách hàng, số dùng cũ, số dùng mới theo các dạng kể trên.
Output
• In ra số tiền phải trả.
Samples
input
Tran Anh Hung, 123, 456
output
399600
Code:
#include <bits/stdc++.h>
using namespace std;
int to_number(int s)
{
if(s == 48) return 0;
if(s == 49) return 1;
if(s == 50) return 2;
if(s == 51) return 3;
if(s == 52) return 4;
if(s == 53) return 5;
if(s == 54) return 6;
if(s == 55) return 7;
if(s == 56) return 8;
if(s == 57) return 9;
if(s == 65) return 10;
if(s == 66) return 11;
if(s == 67) return 12;
if(s == 68) return 13;
if(s == 69) return 14;
if(s == 70) return 15;
}
int number(int a[] , int n, int count)
{
int sum = 0,k = count - 1;
for(int i = 0 ; i < n ; i++)
{
sum += a[i]*pow(10,k);
k--;
}
return sum;
}
int main()
{
char *s = new char[500];
gets(s);
int c[100000],b[100000],x=0,j=0,count=0,k=0;;
for(int i = 0; i < strlen(s) ; i++)
{
k++;
if((int)*(s+i) >= 48 && (int)*(s+i) <= 57)
{
count++;
b[x++] = to_number((int)*(s+i));
}
if(*(s+i) == '-' || *(s+i) == '_' || *(s+i) == ';' || *(s+i) == ',' || *(s+i) == '.' || *(s+i) == '|' ||*(s+i) == '/')
{
if(count > 0)
{
c[j++] = number(b,x,count);
x = 0;
count = 0;
}
}
}
if(k == strlen(s))
c[j++] = number(b,x,count);
cout<<abs((c[1]-c[0])*1200);
return 0;
}