汉诺塔ix C语言

看了许多思路,突然想到一种方法

1是1 3 5 7 9

2是2 6 10 

3是4 12 20

n就是 2^n-1   2^n-1+2^n  2^n-1+2^n+2^n

代码贴在下面

#include
#include
int main(void)
{
	int n,m,i;
	while(scanf("%d%d",&n,&m),n+m){
		if(m%2==1) printf("%d\n",1);
		else for(i=2;i<=n;i++){
			if((m+(int)pow(2,i-1))%(int)pow(2,i)==0){
				printf("%d\n",i);
				break;
			}
		}
	}
	return 0;
}

你可能感兴趣的:(其他,c语言,ACM)