回 帖 发 新 帖 刷新版面

主题:[原创]这两题求解~

这两题的数据范围很大,怎样才能既优化,又能够百分百通过?谢谢各位!

第一题  a+b program
【问题描述】  如题、输入、输出。
【输入格式】 ab.in
输入文件 a+b.in共n+1行。
第一行有一个数字n,表示有n组数据。(1<=n<=1000)。
后面n行每行一个字符串,为“A+B”,A、B均为非负整数,且<=2*10^9。
【输出格式】 ab.out 
输出文件a+b.out共n行,输出每一对A+B的值。
【输入样例1】
1
215+56443562
【输出样例1】
56443777
【输入样例2】
3
0+45
56486+454
1412342343+1454651111
【输出样例2】
45
56940
2866993454
【数据规模】
20%的数据满足:0<=A、B<=16000   40%的数据满足:0<=A、B<=32767
70%的数据,满足:0<=A、B<=10^9   100%0<=A、B<=2*10^9 1<=n<=10000

第二题  蜗牛
【问题描述】大家小时候一定做过这样一道智力题:一只蜗牛爬长度为a的房檐。每天白天向上爬b个单位,每天黑天下降c个单位,问几天能爬上房顶。现在就请大家来解决这个问题。
【输入格式】
输入文件snail.in共n+1行。
第一行有一个数字n,表示有n组数据。(1<=n<=5)。
后面n行每行有三个整数a、b、c,含义如题。
【输出格式】
输出文件snail.out共n行,输出几天能爬上房顶,如果永远也爬不上房顶,则输出“error”。
【输入样例】snail.in
2
15 6 4
15 4 6
【输出样例】 snail.out
6
error
【数据规模】
40%的数据满足:a、b、c<=32767 1<=n<=3   100%的数据满足:a、b、c<=2147483647  1<=n<=5

回复列表 (共7个回复)

沙发

1.
CLS
INPUT n
DIM q$(n), a(10000), b(10000)
FOR i = 1 TO n
INPUT q$(i)
NEXT i
FOR p = 1 TO n
a$ = ""
b$ = ""
lq = LEN(q$(p))
o = INSTR(1, q$(p), "+")
a$ = LEFT$(q$(p), o - 1)
b$ = MID$(q$(p), o + 1, lq - 1 - LEN(a$))
la = LEN(a$): lb = LEN(b$)
IF lb > la OR b$ > a$ THEN SWAP la, lb: SWAP a$, b$
n = la + 1
FOR i = 1 TO n: a(i) = 0: b(i) = 0: NEXT i
FOR i = 1 TO la
a(i) = VAL(MID$(a$, n - i, 1))
NEXT i
FOR i = 1 TO lb
b(i) = VAL(MID$(a$, n - i, 1))
NEXT i
FOR i = 1 TO la
x = a(i) + b(i)
a(i + 1) = a(i + 1) + x \ 10
a(i) = x MOD 10
NEXT i
IF a(n) = 0 THEN n = n - 1
FOR i = n TO 1 STEP -1
PRINT MID$(STR$(a(i)), 2);
NEXT i
PRINT
FOR i = 1 TO n: a(i) = 0: b(i) = 0: NEXT
NEXT p
END

板凳

2.
CLS
INPUT n
DIM x$(n)
DIM a, b, c AS LONG
FOR i = 1 TO n
 INPUT a, b, c
 IF a > b AND b <= c THEN x$(i) = "error": GOTO 1
 x$(i) = LTRIM$(STR$(FIX((a - b) / (b - c) + .5) + 1))
1 NEXT i
FOR i = 1 TO n: PRINT x$(i): NEXT i
END

3 楼

[em1]

4 楼

啥?

5 楼

第一题先判断A+B是否大于LONG,是就用高精度,否就直接加
第二题先判断B是否大于C,是就是
(A-B)/B+1
否就输出"ERROR"




给分啊!

6 楼

孙啸,还要判断A是否小于B。如果小于等于B,就算B大于C也能一天之内爬上

7 楼

oh,yes!
是我疏忽了

我来回复

您尚未登录,请登录后再回复。点此登录或注册