青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

coreBugZJ

此 blog 已棄。

ARITH - SPOJ 6. Simple Arithmetics

One part of the new WAP portal is also a calculator computing expressions with very long numbers. To make the output look better, the result is formated the same way as is it usually used with manual calculations.

Your task is to write the core part of this calculator. Given two numbers and the requested operation, you are to compute the result and print it in the form specified below. With addition and subtraction, the numbers are written below each other. Multiplication is a little bit more complex: first of all, we make a partial result for every digit of one of the numbers, and then sum the results together.

Input

There is a single positive integer T on the first line of input (equal to about 1000). It stands for the number of expressions to follow. Each expression consists of a single line containing a positive integer number, an operator (one of +, - and *) and the second positive integer number. Every number has at most 500 digits. There are no spaces on the line. If the operation is subtraction, the second number is always lower than the first one. No number will begin with zero.

Output

For each expression, print two lines with two given numbers, the second number below the first one, last digits (representing unities) must be aligned in the same column. Put the operator right in front of the first digit of the second number. After the second number, there must be a horizontal line made of dashes (-).

For each addition or subtraction, put the result right below the horizontal line, with last digit aligned to the last digit of both operands.

For each multiplication, multiply the first number by each digit of the second number. Put the partial results one below the other, starting with the product of the last digit of the second number. Each partial result should be aligned with the corresponding digit. That means the last digit of the partial product must be in the same column as the digit of the second number. No product may begin with any additional zeros. If a particular digit is zero, the product has exactly one digit -- zero. If the second number has more than one digit, print another horizontal line under the partial results, and then print the sum of them.

There must be minimal number of spaces on the beginning of lines, with respect to other constraints. The horizontal line is always as long as necessary to reach the left and right end of both numbers (and operators) directly below and above it. That means it begins in the same column where the leftmost digit or operator of that two lines (one below and one above) is. It ends in the column where is the rightmost digit of that two numbers. The line can be neither longer nor shorter than specified.

Print one blank line after each test case, including the last one.

Example

Sample Input:

4
12345+67890
324-111
325*4405
1234*4

Sample Output:

 12345
+67890
------
 80235

 324
-111
----
 213

    325
  *4405
  -----
   1625
     0
 1300
1300
-------
1431625

1234
  *4
----
4936
Warning: large Input/Output data, be careful with certain languages.


模擬題,LISP SBCL
 1(defun out-line(spa str &optional (ope nil))
 2 (dotimes (i spa)
 3  (write-char #\Space))
 4 (if ope (write-char ope))
 5 (write-string str)
 6 (fresh-line))
 7
 8
 9(defun out-dash(len-o len-y len-z)
10 (dotimes (i (- len-o (max len-y len-z)))
11  (write-char #\Space))
12 (dotimes (i (max len-y len-z))
13  (write-char #\-))
14 (fresh-line))
15
16
17(defun proc-plus-minus(str-x str-y plus)
18 (let* ((num-x (parse-integer str-x))
19        (num-y (parse-integer str-y))
20        (num-z (if plus (+ num-x num-y) (- num-x num-y)))
21        (str-z (write-to-string num-z))
22        (len-x (length str-x))
23        (len-y (1+ (length str-y)))
24        (len-z (length str-z))
25        (len-o (max len-x len-y len-z)))
26  (out-line (- len-o len-x) str-x)
27  (out-line (- len-o len-y) str-y (if plus #\+ #\-))
28  (out-dash len-o len-y len-z)
29  (out-line (- len-o len-z) str-z)))
30
31
32(defun proc-mul(str-x str-y)
33 (let* ((num-x (parse-integer str-x))
34        (num-y (parse-integer str-y))
35        (num-z (* num-x num-y))
36        (str-z (write-to-string num-z))
37        (len-x (length str-x))
38        (len-y (length str-y))
39        (len-z (length str-z))
40        (len-o (max len-x (1+ len-y) len-z))
41        (tmp-s nil)
42        (len-s nil)
43        (tmp-z (make-array len-y :fill-pointer 0))
44        (dig-y (make-array len-y :initial-element #\0 :element-type 'character)))
45  (dotimes (i len-y)
46   (let ((j (1- (- len-y i))))
47    (setf (elt dig-y j) (elt str-y j))
48    (setf tmp-s (write-to-string (* num-x (parse-integer dig-y))))
49    (setf (elt dig-y j) #\0)
50    (when (string= tmp-"0")
51     (setf tmp-s (make-array (1+ i) :initial-element #\0 :element-type 'character)))
52    (setf len-s (length tmp-s))
53    (setf len-o (max len-o len-s))
54    (vector-push tmp-s tmp-z)))
55  (out-line (- len-o len-x) str-x)
56  (out-line (1- (- len-o len-y)) str-y #\*)
57  (out-dash len-o (1+ len-y) (length (elt tmp-0)))
58  (dotimes (i len-y)
59   (setf tmp-s (elt tmp-z i))
60   (setf len-s (length tmp-s))
61   (out-line (- len-o len-s) (subseq tmp-0 (- len-s i))))
62  (setf tmp-s (elt tmp-z (1- len-y)))
63  (when (or (string/= tmp-s str-z) (/= len-1))
64   (out-dash len-o (length tmp-s) len-z)
65   (out-line (- len-o len-z) str-z))))
66
67
68(dotimes (i (read))
69 (let ((str (read-line))
70       (idx nil))
71  (cond
72   ((find #\+ str)
73    (setf idx (position #\+ str))
74    (proc-plus-minus (subseq str 0 idx) (subseq str (1+ idx)) t))
75   ((find #\- str)
76    (setf idx (position #\- str))
77    (proc-plus-minus (subseq str 0 idx) (subseq str (1+ idx)) nil))
78   (t
79    (setf idx (position #\* str))
80    (proc-mul (subseq str 0 idx) (subseq str (1+ idx)))))
81  (terpri)))
82
83

posted on 2012-02-20 17:33 coreBugZJ 閱讀(553) 評論(0)  編輯 收藏 引用 所屬分類: ACM 、Lisp

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区三区偷拍| 日韩一级在线观看| 久久久久五月天| 久久久久中文| 亚洲精品美女在线观看| 99国产精品久久久久老师| 国产精品国产三级国产aⅴ无密码| 亚洲免费在线| 久久久999成人| 一本色道久久综合狠狠躁篇怎么玩| 亚洲精品资源| 国产午夜精品福利| 亚洲国产成人porn| 国产精品s色| 免费欧美电影| 国产精品久久网站| 美女脱光内衣内裤视频久久网站| 欧美激情第五页| 久久精品国产欧美激情| 欧美成人情趣视频| 欧美亚洲在线观看| 欧美成人国产| 欧美一级大片在线观看| 欧美成人午夜剧场免费观看| 午夜一区二区三区在线观看| 久久久噜噜噜久久人人看| 中文欧美日韩| 亚洲国产精品99久久久久久久久| 一区二区三区黄色| 亚洲国产婷婷| 香蕉av福利精品导航| 亚洲最新在线| 狂野欧美激情性xxxx| 欧美在线一级va免费观看| 欧美人与禽猛交乱配| 欧美成人精品高清在线播放| 国产精品99免费看| 欧美福利视频一区| 国产一区免费视频| 亚洲一区二区三区四区在线观看 | 亚洲免费影视第一页| 久久亚洲精品一区| 久久久噜噜噜久久| 国产欧美精品日韩精品| 一区二区三区精密机械公司 | 欧美诱惑福利视频| 国产精品sss| 亚洲激情成人| 亚洲国产一区二区三区青草影视| 欧美一区二区三区在线播放| 香蕉久久夜色精品国产使用方法| 欧美第一黄色网| 免费看亚洲片| 亚洲大黄网站| 玖玖玖国产精品| 蜜臀av在线播放一区二区三区| 欧美jizzhd精品欧美巨大免费| 国产精品草莓在线免费观看| aa级大片欧美三级| 亚洲视频一二三| 欧美日韩国产在线播放网站| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲精品一区在线观看| 免费在线看成人av| 亚洲国产精品小视频| 亚洲欧洲另类| 欧美激情中文字幕在线| 亚洲韩国一区二区三区| 日韩亚洲欧美成人一区| 欧美日韩精品免费观看视一区二区 | 免费亚洲一区| 亚洲人成在线观看| 欧美精品手机在线| 99热精品在线观看| 欧美一区二区久久久| 国产午夜精品理论片a级大结局| 亚洲国产精品va在线观看黑人| 久久综合久色欧美综合狠狠| 亚洲福利国产精品| 亚洲午夜久久久久久久久电影院| 欧美性大战久久久久久久| 性感少妇一区| 欧美成人自拍视频| 亚洲视频在线看| 国产一区二区精品| 欧美大片在线观看一区二区| 夜夜嗨av一区二区三区四区 | 亚洲第一久久影院| 欧美日产国产成人免费图片| 亚洲欧美成人| 欧美韩日精品| 亚洲欧美怡红院| 在线免费精品视频| 国产精品99免费看| 久久久久久久久久码影片| 亚洲国产精品ⅴa在线观看| 亚洲无吗在线| 国产精品久久久久久亚洲毛片| 久久成人精品| 99国产精品99久久久久久粉嫩| 久久精品久久综合| 亚洲视频www| 永久免费毛片在线播放不卡| 欧美日韩综合久久| 裸体女人亚洲精品一区| 亚洲香蕉在线观看| 亚洲欧洲一区二区在线播放| 久久精品99久久香蕉国产色戒| 亚洲日本成人在线观看| 国产婷婷色综合av蜜臀av| 欧美另类综合| 蜜臀va亚洲va欧美va天堂| 午夜视频在线观看一区二区| 亚洲精品永久免费| 欧美激情一区二区三区四区| 久久激情网站| 亚洲欧美偷拍卡通变态| 日韩亚洲成人av在线| 亚洲成人在线视频播放| 国产一区在线看| 国产精品无码永久免费888| 欧美裸体一区二区三区| 狂野欧美激情性xxxx欧美| 欧美在线首页| 欧美亚洲一区二区三区| 一区二区日韩欧美| 黄色小说综合网站| 国产精品一香蕉国产线看观看 | 国产精品第一页第二页第三页| 欧美成人精品一区| 免费国产一区二区| 久久综合伊人77777尤物| 久久久久99精品国产片| 校园激情久久| 久久精品国产99| 久久国产精品网站| 久久岛国电影| 久久精品动漫| 久久综合一区二区三区| 模特精品裸拍一区| 欧美成人精品h版在线观看| 欧美va亚洲va香蕉在线| 免费不卡在线观看| 模特精品在线| 欧美日韩国产在线| 国产精品video| 国产欧美日韩一区| 国产午夜精品全部视频在线播放| 性色av一区二区三区在线观看| 性欧美video另类hd性玩具| 欧美一区二区福利在线| 久久另类ts人妖一区二区| 久久夜色精品一区| 欧美精品一区二区三区在线看午夜| 欧美高清视频在线播放| 欧美日韩国产精品一卡| 国产精品久久99| 国产精品一区久久久久| 一区精品久久| 日韩手机在线导航| 午夜精品久久久久久久男人的天堂 | 欧美日韩一区二区在线观看| 国产精品久久久久久久久借妻 | 日韩亚洲精品电影| 亚洲欧美在线播放| 欧美.www| 99热这里只有成人精品国产| 香蕉久久精品日日躁夜夜躁| 久久久欧美精品| 欧美日韩国产精品一卡| 国产一区欧美| 99ri日韩精品视频| 久久狠狠婷婷| 最新国产成人在线观看| 宅男精品视频| 美日韩精品免费观看视频| 欧美午夜精品久久久久久孕妇 | 国内揄拍国内精品少妇国语| 亚洲日本一区二区三区| 欧美在线三区| 亚洲精品国久久99热| 欧美在线视频免费观看| 欧美激情视频在线播放| 国产一区二区三区日韩| 在线综合欧美| 男男成人高潮片免费网站| 亚洲午夜视频在线| 欧美一区二区视频在线观看| 欧美国产日韩免费| 性色av一区二区三区红粉影视| 欧美欧美天天天天操| 亚洲电影在线免费观看| 欧美一级在线播放| 亚洲精品综合| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产日韩欧美在线观看| 亚洲午夜91| 亚洲免费观看| 欧美成人午夜激情视频| 亚洲高清在线|