一道自编算法问题
usrbin吧
全部回复
仅看楼主
level 11
usrbin 楼主
有下列程序代码:
#include <stdio.h>
int mask = 0,tot = 0;
inline void f(int n){
    if(--n) f(n),mask ^= 1 << (n-1),printf("%d %d\n",++tot,mask),f(n);
}
int main(){
    int n;
    scanf("%d",&n);
    f(n);
    return 0;
}
===========================================================
给定输入的n值(n∈[1,10^6]),以及某时刻tot值(二进制,mask∈[1,2^(n-1)-1]),输出mask值
样例输入:
4 110
5 1010
样例输出:
101
1111

2011年04月16日 18点04分 1
level 11
usrbin 楼主
感兴趣的来做做吧
2011年04月16日 18点04分 2
level 11
usrbin 楼主
PS:假定程序可以输出任意大整数,可以对任意位进行位操作
2011年04月17日 02点04分 3
level 14
[害羞]mark,刷完牙,洗完脸来看
2011年04月17日 02点04分 4
level 11
usrbin 楼主
回复:4楼
早啊
2011年04月17日 02点04分 5
level 14
我还是没想出来,继续去想,顶顶
2011年04月17日 04点04分 6
level 11
usrbin 楼主
回复:6楼
给个提示:格雷码[抛媚眼]
2011年04月17日 05点04分 7
level 14
回复:7楼
[啊!]格雷码啊,我去看看啊
2011年04月17日 05点04分 8
level 6
这个提示太红果果了。。
2011年04月17日 08点04分 9
level 11
usrbin 楼主
嗯哪……算法简单,数学证明有些难度呢
2011年04月17日 14点04分 10
1