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

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 閱讀(566) 評論(0)  編輯 收藏 引用 所屬分類: ACMLisp

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            小嫩嫩精品导航| 国产一区二区观看| 欧美视频免费在线| 国产嫩草一区二区三区在线观看 | 欧美成人一区在线| 欧美成人免费在线| 一区二区欧美亚洲| 日韩视频一区| 日韩一级精品| 欧美国产丝袜视频| 久久综合给合| 亚洲国产日韩在线| 久久久视频精品| 亚洲欧美一区在线| 久久资源在线| 亚洲成色最大综合在线| 欧美国产日本在线| aa国产精品| 亚洲一级在线| 久久精品一本久久99精品| 久久久久9999亚洲精品| 欧美成人精品1314www| 欧美日本精品| 国产精品亚洲不卡a| 国语自产精品视频在线看8查询8| 一色屋精品视频免费看| 亚洲国产欧美不卡在线观看| 在线视频亚洲欧美| 久久精品在线视频| 久久综合亚洲社区| 亚洲片在线资源| 亚洲女爱视频在线| 欧美成人tv| 欧美日韩激情网| 欧美三区在线视频| 黄色成人免费观看| 亚洲一区二区视频在线观看| 欧美www在线| 亚洲一区二区动漫| 久久se精品一区二区| 欧美激情成人在线视频| 国产亚洲电影| 一本色道久久| 欧美激情va永久在线播放| 亚洲欧洲另类| 美女精品国产| 韩国av一区二区| 亚洲欧美日本国产有色| 久久米奇亚洲| 99精品视频免费观看| 久久频这里精品99香蕉| 欧美日韩 国产精品| 亚洲激情在线观看视频免费| 久久久久国产精品一区| 亚洲国产美国国产综合一区二区| 欧美一区二区三区免费观看视频| 欧美理论电影在线观看| 亚洲国产精品www| 欧美亚洲一区二区三区| 亚洲国产精品成人综合| 亚洲欧美日韩一区二区三区在线| 欧美人妖另类| 亚洲第一福利社区| 快she精品国产999| 午夜精品福利电影| 欧美三级视频在线播放| 中文亚洲视频在线| 亚洲片在线观看| 欧美激情免费观看| 国产视频一区二区在线观看| 亚洲午夜伦理| 亚洲高清一二三区| 久久亚洲精品一区二区| 国内精品久久久久久久影视麻豆| 久久成人免费电影| 在线视频免费在线观看一区二区| 男人的天堂亚洲| 亚洲人成人99网站| 亚洲第一精品福利| 欧美aⅴ99久久黑人专区| 一区二区在线看| 美女啪啪无遮挡免费久久网站| 欧美亚洲自偷自偷| 欧美性做爰毛片| 亚洲欧美日韩中文播放| 亚洲一区二区三区精品在线| 另类尿喷潮videofree | 亚洲一区二区精品在线| 欧美视频中文一区二区三区在线观看| 亚洲人成在线播放| 亚洲国产91色在线| 国产精品二区三区四区| 欧美亚洲一区| 久久久免费精品| 亚洲高清色综合| 亚洲精品欧洲精品| 国产精品久久久久高潮| 久久亚洲精品网站| 欧美jizz19性欧美| 欧美在线啊v一区| 免费日韩一区二区| 亚洲综合欧美| 久久久999精品视频| 亚洲精品国产无天堂网2021| 亚洲日本一区二区三区| 欧美激情欧美激情在线五月| 一本不卡影院| 欧美一激情一区二区三区| 亚洲高清视频在线| 亚洲国产婷婷香蕉久久久久久99 | 校园激情久久| 久久国产精品黑丝| 亚洲精品久久久久久一区二区| 蜜臀av性久久久久蜜臀aⅴ| 嫩草国产精品入口| 亚洲一区二区网站| 欧美成人一品| 国产精品99久久久久久白浆小说 | 亚洲精品影院在线观看| 亚洲国产精品一区在线观看不卡 | 亚洲午夜未删减在线观看| 国产婷婷一区二区| 亚洲精品裸体| 亚洲国产天堂久久综合网| 99成人精品| 伊人男人综合视频网| 9人人澡人人爽人人精品| 在线观看日韩av电影| 亚洲图片欧美日产| 在线精品亚洲一区二区| 亚洲性感激情| 亚洲国产精品999| 亚洲一区二区在线免费观看| 在线观看日韩| 欧美资源在线| 久久久中精品2020中文| 欧美视频在线观看免费网址| 欧美va天堂va视频va在线| 欧美色区777第一页| 久久男女视频| 欧美黄色成人网| 你懂的国产精品永久在线| 韩日在线一区| 亚洲视频欧美在线| 亚洲图片激情小说| 国产精品久久久免费| 欧美激情二区三区| 亚洲电影第1页| 久久亚洲综合| 免费成人av在线看| 国产在线乱码一区二区三区| 亚洲精品久久久久久一区二区| 99re6这里只有精品视频在线观看| 久久国产毛片| 久久综合激情| 亚洲福利专区| 久久9热精品视频| 老牛影视一区二区三区| 1000部国产精品成人观看| 农夫在线精品视频免费观看| 亚洲国产欧美国产综合一区| 亚洲日本中文字幕免费在线不卡| 免费成人av在线看| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品视频成人| 欧美在线播放| 久久久久久尹人网香蕉| 一区一区视频| 欧美美女bbbb| 亚洲男人的天堂在线| 亚洲尤物在线| 国产一区二区三区久久悠悠色av| 亚洲综合色自拍一区| 久久精品女人的天堂av| 韩日午夜在线资源一区二区| 噜噜噜在线观看免费视频日韩| 老司机67194精品线观看| 99v久久综合狠狠综合久久| 老司机精品福利视频| 999在线观看精品免费不卡网站| 亚洲男女自偷自拍| 在线观看成人一级片| 久久激情视频| 亚洲第一区在线| 这里只有精品视频| 国产精品欧美风情| 欧美资源在线| 亚洲精品一区二区三区99| 午夜精品亚洲| 亚洲三级免费观看| 欧美色网一区二区| 久久亚洲一区二区三区四区| 99精品国产福利在线观看免费| 欧美一区1区三区3区公司| 亚洲国产综合91精品麻豆| 国产精品久久久久毛片软件| 亚洲在线一区| 亚洲精品在线观看视频| 久久偷窥视频| 欧美影片第一页|