回 帖 发 新 帖 刷新版面

主题:比赛题目1[50]

科学家在热带森林中发现了一种特殊的小动物,取名为“吱吱”。“吱吱”的生长繁殖过程很有规律,每对小“吱吱”经过X个月就长成一对大“吱吱”,每对大“吱吱”每个月都产下Y对小“吱吱”。假设开始时有一对小“吱吱”,并且每对“吱吱”都不死,问:过Z个月后,共有多少对“吱吱”?(X≥1,Y≥1,1≤Z≤24)
(注:若当前是1月,则“过”2个月,是表示到3月的时候)
输入:X,Y,Z的值                输出:“吱吱”的总对数
如:输入:X,Y,Z=2,2,4
  输出:11【30】
如下图所示,键入A,B,C,D,E的值,然后从A出发,顺次经过每个数字分岔路口,选择+、-、*、/ 四种运算符之一进行运算,达到目的地E时,运算结果恰好等于E,请你将所有符合上述条件的道路全部找出来。
 
输入:A、B、C、D和E的值(其中A、B、C、D都是1~9的数字,E是正整数)
输出:从A能到达E的所有道路代表的运算式(注意:前两步运算要加括号)
   最后打印出道路的总数。
   如:输入:A,B,C,D,E=1,2,3,4,10
     输出:((1+2)+3)+4=10
                ((1*2)*3)+4=10
                TOTAL=2

回复列表 (共14个回复)

沙发

填写加减乘除问题:
INPUT "A,B,C,D,E = ", a, b, c, d, e
DIM cs(4) AS STRING
FOR i = 1 TO 4: READ cs(i): NEXT
DATA +,-,*,/
FOR i = 1 TO 4
  FOR j = 1 TO 4
    FOR k = 1 TO 4
      SELECT CASE cs(i)
        CASE "+": s = a + b
        CASE "-": s = a - b
        CASE "*": s = a * b
        CASE "/": s = a / b
      END SELECT
      SELECT CASE cs(j)
        CASE "+": s = s + c
        CASE "-": s = s - c
        CASE "*": s = s * c
        CASE "/": s = s / c
      END SELECT
      SELECT CASE cs(k)
        CASE "+": s = s + d
        CASE "-": s = s - d
        CASE "*": s = s * d
        CASE "/": s = s / d
      END SELECT
      IF s = e THEN
        PRINT "((("; LTRIM$(STR$(a)); cs(i); LTRIM$(STR$(b)); ")"; cs(j);
        PRINT LTRIM$(STR$(c)); ")"; cs(k); LTRIM$(STR$(d)); "="; LTRIM$(STR$(e))
      END IF
NEXT k, j, i
END

板凳

[quote]填写加减乘除问题:
INPUT "A,B,C,D,E = ", a, b, c, d, e
DIM cs(4) AS STRING
FOR i = 1 TO 4: READ cs(i): NEXT
DATA +,-,*,/
FOR i = 1 TO 4
  FOR j = 1 TO 4
    FOR k = 1 TO 4
      SELECT CASE cs(i)
        CASE "+": s = a + b
        CASE "-": s = a - b
        CASE "*": s = a * b
        CASE "/": s = a / b
      END SELECT
      SELECT CASE cs(j)
        CASE "+": s = s + c
        CASE "-": s = s - c
        CASE "*": s = s * c
        CASE "/": s = s / c
      END SELECT
      SELECT CASE cs(k)
        CASE "+": s = s + d
        CASE "-": s = s - d
        CASE "*": s = s * d
        CASE "/": s = s / d
      END SELECT
      IF s = e THEN
        PRINT "((("; LTRIM$(STR$(a)); cs(i); LTRIM$(STR$(b)); ")"; cs(j);
        PRINT LTRIM$(STR$(c)); ")"; cs(k); LTRIM$(STR$(d)); "="; LTRIM$(STR$(e))
      END IF
NEXT k, j, i
END[/quote]
最后TOTAL=2呢?

3 楼

什么意思?

4 楼

?????

5 楼

哪有TOTAL=2?

6 楼

哦  对了 
gewenbo  你的
这个:
   如:输入:A,B,C,D,E=1,2,3,4,10
     输出:((1+2)+3)+4=10
                ((1*2)*3)+4=10
                TOTAL=2


没按格式输出

7 楼

格式调一下

8 楼

哦,知道,改一下就行了

9 楼

一楼方法繁,不如用进制穷举。

10 楼

这倒是可以考虑考虑

我来回复

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