-
-
[原创]不死神鸟.cpp(修改)
-
发表于: 2010-10-20 15:32 3358
-
#define shuzuA {16, 3, 2, 13, 5, 10, 11, 8, 9, 6, 7, 12, 4, 15, 14, 1}//预定义数组部分
#include <iostream>//定义头文件
int caseno = NULL;//csaeno为空的整数型变量
int shuzu[] = shuzuA;//将预定义的shuzuA赋给shuzu的数组成员
void fourset(int,int);//定义fourset为接收带有2个整数形参数的函数
int main()
{//main函数开始
fourset(0, 16);//调用fourset函数,并传递2个参数0和16
return 0;//返回0
}//main函数结束
void print()
{//print函数开始
int j = 0;//定义2个整数型变量i和j,并把j的值初始化为0
printf("Case %d\n\n", ++caseno);//输出Case加上编号加\n换行符-----------加\n换行符
for (int i = 0; i < 16; i++)//for语句循环条件为i为整数型,将i初始化为0,判断i的值是否小于16,如果小于则i进行自加操作
{//for循环开始
printf("%2d ", shuzu[i]);//输出shuzu[i]
if (0 == (++j) % 4)//判断0是否等于j+1
printf("\n");//输出1个换行符
}//for循环结束
printf("\n");//输出1个换行符
}//print函数结束
int get()
{//get函数开始
int a = shuzu[0] + shuzu[1] + shuzu[2] + shuzu[3];//初始化整数型变量a的值为shuzu[0] + shuzu[1] + shuzu[2] + shuzu[3]
if (a != shuzu[4] + shuzu[5] + shuzu[6] + shuzu[7])//如果a不等于shuzu[4] + shuzu[5] + shuzu[6] + shuzu[7]
return 0;//返回0
if (a != shuzu[8] + shuzu[9] + shuzu[10] + shuzu[11])//如果a不等于shuzu[8] + shuzu[9] + shuzu[10] + shuzu[11]
return 0;//返回0
if (a != shuzu[12] + shuzu[13] + shuzu[14] + shuzu[15])//如果a不等于shuzu[12] + shuzu[13] + shuzu[14] + shuzu[15]
return 0;//返回0
if (a != shuzu[0] + shuzu[4] + shuzu[8] + shuzu[12])//如果a不等于shuzu[0] + shuzu[4] + shuzu[8] + shuzu[12]
return 0;//返回0
if (a != shuzu[1] + shuzu[5] + shuzu[9] + shuzu[13])//如果a不等于shuzu[1] + shuzu[5] + shuzu[9] + shuzu[13]
return 0;//返回0
if (a != shuzu[2] + shuzu[6] + shuzu[10] + shuzu[14])//如果a不等于shuzu[2] + shuzu[6] + shuzu[10] + shuzu[14]
return 0;//返回0
if (a != shuzu[3] + shuzu[7] + shuzu[11] + shuzu[15])//如果a不等于shuzu[3] + shuzu[7] + shuzu[11] + shuzu[15]
return 0;//返回0
if (a != shuzu[0] + shuzu[5] + shuzu[10] + shuzu[15])//如果a不等于shuzu[0] + shuzu[5] + shuzu[10] + shuzu[15]
return 0;//返回0
if (a != shuzu[3] + shuzu[6] + shuzu[9] + shuzu[12])//如果a不等于shuzu[3] + shuzu[6] + shuzu[9] + shuzu[12]
return 0;//返回0
else//否则
{
return 1;//返回1
}
}//get函数结束
void mobile(const int m)//函数名mobile带有1个整数型参数
{//mobile函数开始
int i,j = shuzu[0];//定义i和j为整数型,初始化j的值为shuzu[0]
for (i = 0; i < m; i++)//for循环的条件为i等于0,如果i小于m的值,则i进行自加
shuzu[i] = shuzu[i + 1];//数组函数shuzu[i]的结果等于函数名shuzui的数组i加1的值
shuzu[i] = j;//数组函数shuzu[i]的结果等于j
}//mobile函数结束
void fourset(const int m, const int n)//定义1个名为fourset的函数,该函数传递了2个整形常数
{//fourset函数开始
if (m < n)//if判断语句 m是否小于n
{//if判断开始
for (int i = 0; i <= m; i++)//for循环的条件为i为整数型,并初始化i的值为0,i是否小于等于m,如果小于则i进行自加操作
{//for循环开始
fourset(m + 1, n);//将m+1和n分别传递给fourset中的2个参数
mobile(m);//将m传递给函数mobile
}//for循环结束
}//if判断结束
else//否则
{
if (get())//判断get函数是否为空
print();//输出
}
}//fourset函数结束
#include <iostream>//定义头文件
int caseno = NULL;//csaeno为空的整数型变量
int shuzu[] = shuzuA;//将预定义的shuzuA赋给shuzu的数组成员
void fourset(int,int);//定义fourset为接收带有2个整数形参数的函数
int main()
{//main函数开始
fourset(0, 16);//调用fourset函数,并传递2个参数0和16
return 0;//返回0
}//main函数结束
void print()
{//print函数开始
int j = 0;//定义2个整数型变量i和j,并把j的值初始化为0
printf("Case %d\n\n", ++caseno);//输出Case加上编号加\n换行符-----------加\n换行符
for (int i = 0; i < 16; i++)//for语句循环条件为i为整数型,将i初始化为0,判断i的值是否小于16,如果小于则i进行自加操作
{//for循环开始
printf("%2d ", shuzu[i]);//输出shuzu[i]
if (0 == (++j) % 4)//判断0是否等于j+1
printf("\n");//输出1个换行符
}//for循环结束
printf("\n");//输出1个换行符
}//print函数结束
int get()
{//get函数开始
int a = shuzu[0] + shuzu[1] + shuzu[2] + shuzu[3];//初始化整数型变量a的值为shuzu[0] + shuzu[1] + shuzu[2] + shuzu[3]
if (a != shuzu[4] + shuzu[5] + shuzu[6] + shuzu[7])//如果a不等于shuzu[4] + shuzu[5] + shuzu[6] + shuzu[7]
return 0;//返回0
if (a != shuzu[8] + shuzu[9] + shuzu[10] + shuzu[11])//如果a不等于shuzu[8] + shuzu[9] + shuzu[10] + shuzu[11]
return 0;//返回0
if (a != shuzu[12] + shuzu[13] + shuzu[14] + shuzu[15])//如果a不等于shuzu[12] + shuzu[13] + shuzu[14] + shuzu[15]
return 0;//返回0
if (a != shuzu[0] + shuzu[4] + shuzu[8] + shuzu[12])//如果a不等于shuzu[0] + shuzu[4] + shuzu[8] + shuzu[12]
return 0;//返回0
if (a != shuzu[1] + shuzu[5] + shuzu[9] + shuzu[13])//如果a不等于shuzu[1] + shuzu[5] + shuzu[9] + shuzu[13]
return 0;//返回0
if (a != shuzu[2] + shuzu[6] + shuzu[10] + shuzu[14])//如果a不等于shuzu[2] + shuzu[6] + shuzu[10] + shuzu[14]
return 0;//返回0
if (a != shuzu[3] + shuzu[7] + shuzu[11] + shuzu[15])//如果a不等于shuzu[3] + shuzu[7] + shuzu[11] + shuzu[15]
return 0;//返回0
if (a != shuzu[0] + shuzu[5] + shuzu[10] + shuzu[15])//如果a不等于shuzu[0] + shuzu[5] + shuzu[10] + shuzu[15]
return 0;//返回0
if (a != shuzu[3] + shuzu[6] + shuzu[9] + shuzu[12])//如果a不等于shuzu[3] + shuzu[6] + shuzu[9] + shuzu[12]
return 0;//返回0
else//否则
{
return 1;//返回1
}
}//get函数结束
void mobile(const int m)//函数名mobile带有1个整数型参数
{//mobile函数开始
int i,j = shuzu[0];//定义i和j为整数型,初始化j的值为shuzu[0]
for (i = 0; i < m; i++)//for循环的条件为i等于0,如果i小于m的值,则i进行自加
shuzu[i] = shuzu[i + 1];//数组函数shuzu[i]的结果等于函数名shuzui的数组i加1的值
shuzu[i] = j;//数组函数shuzu[i]的结果等于j
}//mobile函数结束
void fourset(const int m, const int n)//定义1个名为fourset的函数,该函数传递了2个整形常数
{//fourset函数开始
if (m < n)//if判断语句 m是否小于n
{//if判断开始
for (int i = 0; i <= m; i++)//for循环的条件为i为整数型,并初始化i的值为0,i是否小于等于m,如果小于则i进行自加操作
{//for循环开始
fourset(m + 1, n);//将m+1和n分别传递给fourset中的2个参数
mobile(m);//将m传递给函数mobile
}//for循环结束
}//if判断结束
else//否则
{
if (get())//判断get函数是否为空
print();//输出
}
}//fourset函数结束
赞赏
看原图
赞赏
雪币:
留言: