题目
把一个硬币抛5次,打印出所有可能出现的情况。1表示正面,0表示背面。比如:
全正面
1 1 1 1 1
全背面
0 0 0 0 0
解题思路
只想到转换成二进制来遍历
源码
#include <stdio.h>
#define MAX 5
int print(int num)
{
int i=num;
int arr[MAX]={0};
int k=MAX;
while(i!=0)
{
arr[k-1]=i%2;
i=i/2;
k--;
}
for(int j=0;j<MAX;j++)
{
printf("%2d",arr[j]);
}
printf("\n");
if(num==0)
return 0;
print(num-1);
}
void main()
{
int i=2;
for(int j=0;j<MAX-1;j++)
{
i=i*2;
}
i=i-1;
print(i);
}
执行结果
总结
这个问题,只想到了用二进制,迷宫问题还没有自己的想法,还有好长路要走