对一个自然数做如下操作:如果是偶数则除以2;如果是奇数

来源:百度知道 编辑:UC知道 时间:2024/06/03 00:43:01
对一个自然数做如下操作:如果是偶数则除以2;如果是奇数则加1,如此进行直到1,操作停止。求经过八次操作变为1的数有多少个?

对一个自然数做如下操作:如果是偶数则除以2;如果是奇数则加1,如此进行直到1,操作停止。求经过八次操作变为1的数有多少个?
-------------------------------------------------------------------

第8次操作为1

则第7次操作的结果必须为2

则第6次操作的结果为4/1(上面数字*2,如果结果是偶数,还要加上-1的数)

则第5次操作结果为8/2/3(上面数字*2,如果结果是偶数,还要加上-1的数)

则第4次操作的结果为16/6/4/7/1(上面数字*2,如果结果是偶数,还要加上-1的数)

则第3次操作的结果为32/12/8/14/2/15/5/3(上面数字*2,如果结果是偶数,还要加上-1的数)

则第2次操作的结果为64/24/16/28/4/30/10/6/31/11/7/13/1(上面数字*2,如果结果是偶数,还要加上-1的数)

则第1次操作的结果为128/48/32/56/8/60/20/12/62/22/14/26/2/63/23/15/27/3/29/9/5(上面数字*2,如果结果是偶数,还要加上-1的数)

则这些数字为256/96/64/112/16/120/40/24/124/44/28/52/4/126/46/30/54/6/58/18/10/127/47/31/55/7/59/19/11/61/21/13/25/1

一共34个

规则:
前面数字与后面数字的关系是上面数字*2,如果结果是偶数,还要加上结果-1的数

用逆向思维.反过来做.
1*2*2*2*2*2*2*2*2=256
1*2*2*2*2*2*2*2+1=129
(1*2*2*2*2*2*2+1)*2=130(最后不能加1,加1得偶数,不能逆算)
(1*2*2*2*2*2+1)*2*2=132
(1*2*2*2*2*2+1)*2+1=67
(1*2*2*2*2+1)*2*2*2=1