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

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 閱讀(568) 評論(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>
            欧美三级电影网| 国产乱码精品一区二区三区五月婷 | 亚洲免费成人av| 欧美区高清在线| 午夜精品久久久久久久久久久久久| 亚洲免费播放| 国产精品入口福利| 久久色中文字幕| 你懂的视频欧美| 一区二区三区四区在线| 亚洲一区二区高清视频| 国产视频在线观看一区二区| 免费观看亚洲视频大全| 欧美日韩高清在线观看| 亚洲欧美日韩精品久久亚洲区| 午夜精品一区二区三区电影天堂| 合欧美一区二区三区| 亚洲高清在线观看| 欧美日韩免费视频| 久久精品首页| 欧美精品一区二区三区蜜桃 | 欧美在线免费一级片| 久久精品国产一区二区电影| 亚洲精品国产欧美| 午夜精品网站| 亚洲毛片av在线| 性欧美video另类hd性玩具| 亚洲国产午夜| 亚洲欧美精品中文字幕在线| 亚洲欧洲在线看| 亚洲欧美色一区| 亚洲精选在线| 欧美有码在线视频| 亚洲午夜一区| 久久只精品国产| 久久激情网站| 国产精品成人av性教育| 欧美激情在线| 国产一区二区三区奇米久涩| 夜夜爽av福利精品导航| 亚洲激情第一区| 久久9热精品视频| 亚洲欧美在线播放| 欧美激情精品久久久久久免费印度 | 在线观看欧美激情| 亚洲一区欧美激情| 99精品欧美| 欧美成年人视频网站| 久久亚洲欧美| 国产日韩av在线播放| 一区二区日韩伦理片| 99视频精品| 免费观看国产成人| 麻豆精品在线观看| 韩日欧美一区二区| 午夜在线成人av| 欧美呦呦网站| 国产精品实拍| 亚洲一区二区精品视频| 亚洲影院免费| 欧美视频在线观看一区二区| 亚洲精品中文字| 一区二区电影免费观看| 欧美欧美在线| 一本久道综合久久精品| 亚洲午夜在线观看| 国产精品久久久久久久久动漫| 亚洲免费电影在线| 亚洲一区二区三区精品动漫| 欧美人成免费网站| 99精品国产在热久久下载| 夜夜嗨av一区二区三区免费区| 欧美精品福利| 日韩视频中文| 小黄鸭精品aⅴ导航网站入口| 国产精品美女久久久浪潮软件| 一本一本久久a久久精品牛牛影视| 亚洲一区日韩| 国产精品自拍在线| 久久精品夜色噜噜亚洲aⅴ| 免费久久99精品国产自| 亚洲人成网站999久久久综合| 欧美激情综合| 中国成人在线视频| 久久久久久久性| 亚洲国产成人精品久久| 欧美极品影院| 亚洲午夜影视影院在线观看| 欧美一区日本一区韩国一区| 韩国女主播一区二区三区| 媚黑女一区二区| 一本久久青青| 久久综合九色九九| 99一区二区| 国产视频久久久久| 欧美激情视频免费观看| 亚洲桃色在线一区| 欧美成人a视频| 亚洲图片欧洲图片av| 精品1区2区3区4区| 欧美日韩天堂| 久久精品国产视频| 99热精品在线观看| 免费不卡在线视频| 亚洲无亚洲人成网站77777| 国产一区二区你懂的| 欧美精品在线免费观看| 久久gogo国模裸体人体| 99这里有精品| 欧美高清影院| 久久精品国产免费观看| 正在播放亚洲一区| 亚洲高清久久网| 国产精品自拍视频| 欧美色精品在线视频| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲视频一区| 亚洲精品日韩在线观看| 麻豆精品一区二区av白丝在线| 亚洲欧美日韩成人高清在线一区| 亚洲国产影院| 国内精品久久久| 国产美女一区| 国产精品成人一区二区三区夜夜夜| 看欧美日韩国产| 久久精品国产v日韩v亚洲| 中文国产成人精品| 日韩午夜在线视频| 亚洲人精品午夜在线观看| 久久综合久久综合这里只有精品| 午夜激情综合网| 亚洲视频在线观看一区| 99re成人精品视频| 亚洲精品综合| 亚洲精品欧洲精品| 亚洲精品久久久久久久久久久久| 一区福利视频| 在线观看视频欧美| 在线观看欧美激情| 亚洲国产1区| 亚洲激情社区| 亚洲美女毛片| 亚洲精品综合精品自拍| 亚洲精选中文字幕| 99在线精品观看| 亚洲视频一区在线| 亚洲免费视频网站| 欧美在线中文字幕| 久久伊人免费视频| 蜜月aⅴ免费一区二区三区| 免费一级欧美片在线观看| 女人香蕉久久**毛片精品| 欧美va亚洲va国产综合| 欧美高清视频免费观看| 亚洲国产精品久久人人爱蜜臀| 亚洲国产精品第一区二区三区| 亚洲精品黄色| 亚洲视频在线看| 久久不见久久见免费视频1| 久久精品国产一区二区电影| 麻豆精品精华液| 欧美日韩国产999| 国产精品热久久久久夜色精品三区| 国产精品久久久久久久久借妻 | 在线观看视频一区二区| 亚洲高清网站| 亚洲视频在线一区观看| 欧美一级在线播放| 久久久久欧美| 亚洲国产精品www| 亚洲少妇诱惑| 久久综合久久久久88| 欧美精品久久一区二区| 国产精品久久久久久久久久免费看| 国产区精品视频| 亚洲国产欧美国产综合一区| 亚洲自拍偷拍麻豆| 美日韩精品免费| 在线视频精品一| 久久综合狠狠综合久久激情| 欧美精品一区二区精品网 | 国产精品亚洲综合| 尤物精品在线| 亚洲一区免费网站| 欧美大片网址| 午夜精品国产更新| 欧美日本国产| 精品福利免费观看| 午夜精品电影| 亚洲人成网站999久久久综合| 亚洲欧美精品一区| 欧美人成网站| 亚洲黄色在线| 久久久久久综合网天天| 在线视频一区二区| 欧美大片一区| 亚洲国产精品久久久久秋霞蜜臀 | 99国产精品99久久久久久粉嫩| 久久国产福利| 亚洲一区二区三区中文字幕在线|