- 注册时间
- 2015-10-15
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 2223
- 在线时间
- 小时
|
楼主 |
发表于 2015-10-31 09:55:57
|
显示全部楼层
cn8888先生说得不错呀,就是想用 mathematica 写个“卡布列克” 运算的小程序。
代码如下,请各位指教:
n = 3584514; (* 任意给定一个多位数 n *)
i = 0;
m = 0; lst = {n};
Print[i, "------", n]
For[i = 1, i < 1000, i++,
n = FromDigits[Reverse[Sort[IntegerDigits[n]]]] -
FromDigits[Sort[IntegerDigits[n]]];
lst = Append[lst, n];
For[j = 1, j < i, j++; If[n == lst[[j]], m = 1; mm = j]];
Print[i, "------", n]
If[m == 1, Break[]]
]
Print["从第 ", mm - 1, " 步开始进入循环圈(循环圈长度是 ", j + 1 - mm, "):"]
For[k = mm, k < j + 2, k++, Print[lst[[k]], " "]]
0------3584514
1------7209873
2------9639531
3------8629632
4------7629633
5------7429653
6------7419753
7------8429652
8------7619733
9------8439552
10------7509843
11------9529641
12------8719722
13------8649432
14------7519743
15------8429652
从第 7 步开始进入循环圈(循环圈长度是 8):
8429652
7619733
8439552
7509843
9529641
8719722
8649432
7519743
8429652 |
|