2010-09-28 28 views
6

Đối với một MMORPG World of Warcraft, hãy cố gắng viết một lib. Tiền trong các trò chơi đó được lưu trữ dưới dạng số nguyên và tiền tệ trong trò chơi không phải là số nguyên dựa trên tiền vàng, bạc và đồng.Integer chuyển đổi thành WoW Gold

Mỗi 100 đồng là 1 bạc và mỗi 100 bạc là 1 vàng.

Bây giờ tôi cần phải chuyển đổi như một số nguyên sang định dạng tiền WoW: ví dụ

123123 nên quay lại: 23c 31s 12g

Bất cứ ai cũng biết làm thế nào để làm điều này

+1

Những ngôn ngữ? – kennytm

+0

Không thực sự quan trọng. Tôi chỉ cần có ý tưởng cho nó xD –

+3

Bạn có chắc là có 32 bạc ở đó không? – SingleNegationElimination

Trả lời

10

C#:

int[] WoWMoney(int m) 
{ 
     int[] result = new int[3]; 
     int copper = m % 100; 
     m = (m - copper)/100; 
     int silver = m % 100; 
     int gold = (m - silver)/100; 
     result[0] = copper; 
     result[1] = silver; 
     result[2] = gold; 
     return result; 
} 
2

Trước hết chia 123.123 đến 10000. Điều này cung cấp cho bạn 12.3123. Toàn bộ số (12) là số vàng. Phần còn lại (sau khi delimeter) 3123 devide đến 100 để có được bạc. Điều này cho bạn 31,23. Một lần nữa phần đầu tiên (31) là bạc và phần còn lại (23) là đồng của bạn.

Trong C++ ví dụ, thuật toán này sẽ trông giống như

int number = 123123; 
int gold = number/10000; //this will give you the whole part because of the int type 
number = number%10000; //this will make 'number' 3123 
int silver = number/100; //this will get the silver 
int copper = number%100; //this will get the copper 
3

python:

def fmtGold(value): 
    return "%sc %ss %sg"%(value%100,value/100%100,value/10000%100) 
+0

Cảnh báo: Câu trả lời này có hai lỗi -> Không được có% 100 cho huy chương vàng, nhưng 'giá trị // 10000' và số tiền phủ định không được quản lý đúng cách. – gvo

2
  1. Divide số nguyên 10 000 (đồng bằng vàng), lấy một phần số nguyên, nó sẽ là số lượng vàng.
  2. Lấy phần còn lại từ bước trước. Chia cho 100 (đồng bạc), nó sẽ là số tiền bạc.
  3. Lấy phần còn lại từ bước trước. Nó sẽ là đồng.
0

Perl:

print "How much : "; 
$money = <>; 
chomp $money; 

$gold = int($money/10000); 
$money = int($money%10000); 
$silver = int($money/100); 
$copper = int($money%100); 


$result = sprintf("You need : %dg %ds %dc", $gold, $silver, $copper); 
print "\n$result\n"; 

<>; 
Các vấn đề liên quan