9456 - 珠算(abacus)
时间限制 : 1 秒
内存限制 : 512 MB
算盘是一种手动操作计算辅助工具形式。它起源于中国,是中国古代的一项重要发明。在阿拉伯数字出现前,算盘是世界广为使用的计算工具。
一般的算盘多为木制(或塑料制品),矩形木框内排列一串串等数目的算珠称为档,中有一道横梁把珠分隔为上下两部分,上半部每算珠代表5,下半部每算珠代表1,当需要进行计算或者计数时就把下珠往上拨,把上珠往下拨。每串珠从右至左代表了十进位的个、十、百、千、万位数
求从初始状态拨动珠子到指定数值,需要的最少波动珠数。
输入
输入的第一行包含一个正整数,表示输入的数值的个数。
接下来行,每行一个正整数,表示需要表示的数值大小。
输出
输出包含n行,每行仅一个数字,表示每个数值对应需要拨动的珠子数量。
样例
输入
2 2 257
输出
2 6
输入
12 1 9 29 4236 861 864 9945 345 4065 892 627 870
输出
1 5 7 11 7 10 15 8 7 11 7 7
输入
13 82 4527 6741555 2067750104 255000000 2004000404 125400000 49017271711 896111279424 304555 113722 2387220 247400
输出
6 10 13 16 4 14 8 24 34 10 12 16 13
提示
当需要表示数值2时,需要把最右边的柱子的下珠往上拨2个。
当需要表示数值257时,需要把从右往左数第一根柱子,对应个位,需要拨动3次一次上珠,两次下珠;第二根柱子对应十位,需要拨动1次上珠;第三根柱子对应百位,需要拨动2次下珠,共计拨动6次。
对于所有测试数据有:1≤n≤100,1≤a<10^{18}
来源
云南编程挑战赛