c++编程猫吃老鼠的问题
答案:1 悬赏:40 手机版
解决时间 2021-04-03 02:59
- 提问者网友:雾里闻花香
- 2021-04-02 19:08
c++编程猫吃老鼠的问题
最佳答案
- 五星知识达人网友:青尢
- 2021-04-02 20:18
#include
void GetLastMouse(int nType, int nCount, int nMouse[], int &nLastMouse)
{// nType--0表示吃的是奇数,1偶数;nCount--老鼠的总数;
// nMouse--所有老鼠的序号数组;nLastMouse最后一只老鼠
int nAllIndex = 0; // 总老鼠的索引
int nLifeIndex = 0; // 活着的老鼠的索引
int nLife = 0; // 活着的老鼠
int nLifeCount = 0; // 活着的老鼠总数
for(nAllIndex = 0; nAllIndex < nCount; nAllIndex++)
{ // 获取所有活着的老鼠数量,保存最后一只活着的老鼠的索引
if (0 != nMouse[nAllIndex])
{
nLifeCount++;
nLife = nAllIndex;
}
}
if (1 == nLifeCount) // 如果活着的老鼠只剩一只了,返回
{
nLastMouse = nMouse[nLife];
return ;
}
for (nAllIndex = 0, nLifeIndex = 0; nAllIndex < nCount && nLifeIndex < nLifeCount; nAllIndex++)
{
if (0 != nMouse[nAllIndex] ) // 还没被吃
{
if (nType == nLifeIndex % 2) // 并且处在被吃位置上
nMouse[nAllIndex] = 0; // 0表示被吃
nLifeIndex++;
}
}
GetLastMouse(nType, nCount, nMouse, nLastMouse); // 递运算
}
void main()
{
int nArray[] = {1,2,3,4,5,6,7,8,9,10};
int nLastMouse = 0; // 最后一只老鼠
GetLastMouse(0, 10, nArray, nLastMouse);
void GetLastMouse(int nType, int nCount, int nMouse[], int &nLastMouse)
{// nType--0表示吃的是奇数,1偶数;nCount--老鼠的总数;
// nMouse--所有老鼠的序号数组;nLastMouse最后一只老鼠
int nAllIndex = 0; // 总老鼠的索引
int nLifeIndex = 0; // 活着的老鼠的索引
int nLife = 0; // 活着的老鼠
int nLifeCount = 0; // 活着的老鼠总数
for(nAllIndex = 0; nAllIndex < nCount; nAllIndex++)
{ // 获取所有活着的老鼠数量,保存最后一只活着的老鼠的索引
if (0 != nMouse[nAllIndex])
{
nLifeCount++;
nLife = nAllIndex;
}
}
if (1 == nLifeCount) // 如果活着的老鼠只剩一只了,返回
{
nLastMouse = nMouse[nLife];
return ;
}
for (nAllIndex = 0, nLifeIndex = 0; nAllIndex < nCount && nLifeIndex < nLifeCount; nAllIndex++)
{
if (0 != nMouse[nAllIndex] ) // 还没被吃
{
if (nType == nLifeIndex % 2) // 并且处在被吃位置上
nMouse[nAllIndex] = 0; // 0表示被吃
nLifeIndex++;
}
}
GetLastMouse(nType, nCount, nMouse, nLastMouse); // 递运算
}
void main()
{
int nArray[] = {1,2,3,4,5,6,7,8,9,10};
int nLastMouse = 0; // 最后一只老鼠
GetLastMouse(0, 10, nArray, nLastMouse);
printf("最后一只老鼠的首次编号是:%d
", nLastMouse);}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯