题目描述:
有n行奇怪的数字串,其中第1行为0,然后第n行通过将第n-1行的字符0替换为01,字符1替换为10得到。
比如第1行为0,第2行为01,第3行为0110……
给出行数n以及数字k,要求输出第n行奇怪数字串的第k个数字。
输入:
输入的第一个数字 n 表示行数,第二个数字 k 为要求得的第几个数字。
输出:
第n行奇怪数字串的第k个数字。
1 < n <= 30
测试用例:
测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
---|---|---|---|---|---|
测试用例 1 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
代码实现:
#include<stdio.h>
char str(int n,int k)
{
if(n==1&&k==1)
{
return '0';
}
else
{
if(str(n-1,(k+1)/2)=='0')
{
if(k%2==0)
{
return '1';
}
else
{
return '0';
}
}
else
{
if(k%2==0)
{
return '0';
}
else
{
return '1';
}
}
}
}
int main()
{
int n,k;
scanf("%d %d",&n,&k);
printf("%c\n",str(n,k));
return 0;
}