Tối ngủ, sốt, nóng, thấy 9gag có cái hình hay hay, code ngay cho nóng
http://9gag.com/gag/aWWP7bd?ref=fbp
Hãy nghĩ thuật toán bạn sẽ dùng để tính ra số theo quy tắc trong bức hình trước khi bấm đọc tiếp.
Thuật toán khá đơn giản:
- Map lần lượt từng chữ với từng số: A-1, B-2 ...
như vậy có thể lấy ký tự cần tính trừ đi số đại diện cho A rồi + 1 vào là đổi được chữ ra số
- Chú ý không phân biệt hoa thường
Ta có hàm sum:
func sum(s string) int {Dễ thấy từ nào càng dài và chứa càng nhiều chữ cuối bảng chữ cái thì sẽ càng to:
s = strings.ToLower(s)
sum := 0
for _, char := range s {
sum += int(char-'a') + 1
}
return sum
}
- PROCASTINATION: 174
- masturbation: 153
- pussy: 100
- discipline: 100
--- ai có đầu óc khoa học và chăm chỉ có thể mở rộng chương trình để tìm tất cả các từ có tổng == 100 ~ kết quả sẽ khá bất ngờ.
Chạy code trực tiếp ở
Golang: https://play.golang.org/p/6oKJFUf6EP
Ruby: http://www.rubystub.com/23396892/ (Thank to +Lam Tung )
Python: ???
Hết.
Happy meo meo.
#!/usr/bin/python
ReplyDeletedef sum(chuoi):
chuoi = chuoi.lower()
tong = 0
for kytu in chuoi:
gt = ord(kytu) - 96
tong += gt
return tong
def main():
words = ['attitude','love','knowledge','laziness','whiskey','discipline']
for chuoi in words:
print chuoi, sum(chuoi)
main()
chào mừng bạn lần đầu comment vào familug (y)
DeleteDo độ lởm của blog nên không hỗ trợ format code (không indent được) trong comment, để cho tiện đọc bạn vui lòng sử dụng dịch vụ pastebin của các bên như gist.github.com hoặc pastebin.com để code được xinh nhất.
code của bạn khá ổn, việc dùng biến "chuối" làm mình nhớ lại những ngày xưa vẫn code bằng tiếng Việt (y).
Cám ơn bạn rất nhiều :D mong bạn sẽ tiếp tục tham gia vào các bài viết sau.
import string
ReplyDeleteword = raw_input("Enter your word:").upper()
print sum(string.ascii_uppercase.index(char) + 1 for char in word))
Written by python
Deletelời giải rất hay và khác biệt (y) hoàn toàn có thể viết thành 1 dòng (y)
DeleteRuby: ["Attitude", "Love"].each {|char| p (char.downcase.sum + ( - "a".ord + 1)*char.length) }
ReplyDeletesuper one-liner (y)
DeleteThêm qủa LUA nữa cho đẹp
ReplyDeletehttps://gist.github.com/tunglam14/72b6e70bac9f462ee5d5
Delete(y) you cool :3
DeleteThis comment has been removed by the author.
ReplyDeleteCopy-paste mistake:
Delete$ perl -MList::Util=sum -le 'print sum map{ord(lc)-ord(a)+1}split// for @ARGV' "Attitude" "Love"
100
54
Perl6 one:
ReplyDelete$ perl6 -e 'say [+] .lc.ords.map(*+1-ord("a")) for @*ARGS' "Attitude" "Love"
100
54
perl thật đáng sợ :-s **+@+“”'[]
Delete