急!!算法题,好心人解答.在线等.能给代码..
题目是这样的.
给出7个数字(数组),数字的范围是0-13.除了0是不确定个数的,其它数字最多出现1次.0能转化成1-13中的任何以个数字.
写除算法能判断7个数字中有5个连续数.
例如 0,1,2,3,5,7,10. 0-> 4 就变成1,2,3,4,5,7,10 那就返回 true
0,0,3,8,6,10,13 0-> 7,0-> 9就变成 3,6,7,8,9,10,13 返回 true.
如果没有连续的5个数也不能靠0的变化来拼成连续的5个数就返回 false.
急啊 ,在线等...高手相助
[解决办法]
#include "stdio.h "
#define true 1;
#define false 0;
bool is(int *a)
{
int n[14]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};
for(int i=0;i <7;i++)
n[a[i]]++;
for(int k=0;k <10;k++)
{
if((n[0]+n[k]+n[k+1]+n[k+2]+n[k+3]+n[k+4])> 4)
return true;
}
return false;
}
void main()
{
int a[7]={9,1,2,3,4,7,10};
if(is(a))
printf( "true!!! ");
else
printf( "false!!! ");
}