无心人 发表于 2010-9-24 08:09:07

上班路上想到的有意思的问题

有三位以上的十进制数字,数位不含有0。
假设满足,任意千位以上数字均是其后
两位数字的和,请问

这种数字一共多少个?

无心人 发表于 2010-9-24 08:11:01

比如
918 9 = 1 + 8
8532 8 = 5 + 3 5 = 3 + 2

geslon 发表于 2010-9-24 08:16:59

斐波那契吗?
试一下:
-----------------
853211
53211
3211
211
------------------
312
4312
74312
------------------
413
5413
95413
--------------------
514
6514
---------------
615
7615
-------------
716
8716
---------------
817
9817
----------------
918
------------
321
5321
85321
-------------
422
6422
-------------
523
7523
-------------
624
8624
-----------
725
9725
--------------
826
927
---------------
431
7431
---------------
532
8532
-------------
633
9633
----------------
734
835
936
------------------
541
9541
----------------
642
743
844
945
---------------
651
752
853
954
---------------
761
862
963
---------------
871
972
--------------
981

geslon 发表于 2010-9-24 08:18:25

穷举57个。没细验证,也不知有无遗漏下的。吃饭饭去鸟。

〇〇 发表于 2010-9-25 12:45:45

SQL> with t1 as(select level l from dual connect by level <=9)
2,t(lv,s) as(select * from(select 2 ,cast(to_char(level,'fm99') as varchar(10)) s from dual connect by level<=99)where substr(s,1,1)+sub
str(s,2,1)<=9 and mod(s,10)<>0
3union all
4select lv+1 ,l||s from t,t1 where l=substr(s,1,1)+substr(s,2,1)and lv<9)
5select lv,s from t where lv>=3 order by 1,2;

    LV S
------ --------------------
   3 211
   3 312
   3 321
   3 413
   3 422
   3 431
   3 514
   3 523
   3 532
   3 541
   3 615
   3 624
   3 633
   3 642
   3 651
   3 716
   3 725
   3 734
   3 743
   3 752
   3 761
   3 817
   3 826
   3 835
   3 844
   3 853
   3 862
   3 871
   3 918
   3 927
   3 936
   3 945
   3 954
   3 963
   3 972
   3 981
   4 3211
   4 4312
   4 5321
   4 5413
   4 6422
   4 6514
   4 7431
   4 7523
   4 7615
   4 8532
   4 8624
   4 8716
   4 9541
   4 9633
   4 9725
   4 9817
   5 53211
   5 74312
   5 85321
   5 95413
   6 853211

已选择57行。

SQL>

无心人 发表于 2010-9-25 20:14:48

95431
85312
?????
.....

geslon 发表于 2010-9-26 01:22:16

楼上这两个数字,完全不行啊!!
有疑问吗?

无心人 发表于 2010-9-26 08:58:48

:loveliness:

呃,那我错了
我没注意第四位的约束

chyanog 发表于 2010-9-26 20:19:49

本帖最后由 chyanog 于 2010-9-26 23:50 编辑

我也找到57个,本来用C写的,但类型转化老让我纠结,便用Java了,才发现似乎在咱们群里没有见过java代码:
public class NewClass1 {

    public static void main(String[] args) {
      long start = System.nanoTime();
      int count = 0;
      for (int i = 1; i < 10; i++) {
            for (int j = 1; j < 10; j++) {
                int a, a1 = i, a2 = j, t = 10 * a1 + a2;
                while (a1 + a2 < 10) {
                  a = a1 + a2;
                  a1 = a2;
                  a2 = a;
                  t = (int) (Math.pow(10.0, Math.floor(Math.log10(t)) + 1.0) * a + t);
                  System.out.print(t + (++count % 10 == 0 ? "\n" : " "));
                }
            }
      }
      System.out.println("\ncount : " + count + "\nTiming: " + (System.nanoTime() - start) / Math.pow(10, 9) + "s");

    }
}
211      3211      53211      853211      312      5312      85312      413      7413      514
9514      615      716      817      918      321      4321      74321      422      6422
523      8523      624      725      826      927      431      5431      95431      532
7532      633      9633      734      835      936      541      6541      642      8642
743      844      945      651      7651      752      9752      853      954      761
8761      862      963      871      9871      972      981      
count : 57
Timing: 0.003259012s

chyanog 发表于 2010-9-26 20:31:05

8# 无心人
不知道譬如8532119的数算不算呢?
页: [1] 2
查看完整版本: 上班路上想到的有意思的问题