从1到100,每数到7的时候,把该数字提出来,剩下的数字继续循环,问最后剩下的一个数字是多少。
来源:互联网 发布:复购率高的产品 知乎 编辑:程序博客网 时间:2024/04/29 11:34
题目: 从1到100,每数到7的时候,把该数字提出来,剩下的数字继续循环,问最后剩下的一个数字是多少。
思路:使用循环链表
代码:
#include <iostream>
using namespace std;
const int totalnum = 100;
typedef struct NUMBER
{
int num;
struct NUMBER *next;
}Number;
Number *Head = NULL;
Number *Tail = NULL;
void InputNum()
{
int i;
Number *tmp = NULL;
tmp = new Number;
tmp->num = 1;
tmp->next = Head;
Head = tmp;
Tail = tmp;
Tail->next = Head;
for(i = 1 ; i< totalnum;i++){
tmp = new Number;
tmp->num = i+1;
Tail->next = tmp;
tmp->next = Head;
Tail = tmp;
}
}
void OutPutNum()
{
Number *tmp = NULL;
Number *pre = NULL;
int i = 6;
tmp = Head;
while(tmp!= tmp->next)
{
pre = tmp;
tmp = tmp->next;
i--;
if(0 == i)
{
pre->next = tmp->next;
delete tmp;
tmp = new Number;
tmp = pre->next;
i = 6;
continue;
}
}
cout<<tmp->num<<endl;
}
int main(int argc,char *argv[])
{
InputNum();
OutPutNum();
return 0;
}
- 从1到100,每数到7的时候,把该数字提出来,剩下的数字继续循环,问最后剩下的一个数字是多少。
- 假设有1 2 ....7的一串数,循环查数,查到三就删除数字,然后再从一开始查数,查到三就删除,.......。直到剩下最后一个数结束,求删除的数的顺序
- 有10人围成圈数数,每次数到3的人退出其他人继续,问最后剩下的一个人原来的位置是多少
- 有10人围成圈数数,每次数到3的人退出其他人继续,问最后剩下的一个人原来的位置是多少
- 求圆圈中最后剩下的数字
- 圆圈中最后剩下的数字
- 18.圆圈中最后剩下的数字
- 圆圈中最后剩下的数字
- 圆圈中最后剩下的数字
- 圆圈中最后剩下的数字[算法]
- 圆圈中最后剩下的数字
- 圆圈中最后剩下的数字
- 圆圈中剩下的最后数字
- 圆圈中最后剩下的数字
- 圆圈中最后剩下的数字
- 圆圈中最后剩下的数字
- 圆圈中最后剩下的数字
- 圆圈中最后剩下的数字
- 如何在android手机项目中加入广告
- #pragma pack详解
- Linux设备驱动Hello World程序介绍
- My 10 favourite Programming Quotes - 程序十言
- 网站性能-cgi fastcgi mod_php相关概念整理
- 从1到100,每数到7的时候,把该数字提出来,剩下的数字继续循环,问最后剩下的一个数字是多少。
- java安全管理器
- Linux设备驱动Hello World程序介绍
- memset函数详细说明
- 使用Javascript获取CheckBoxList的选中值
- hlist哈希链表
- RMI简单实例
- 模板模式和策略模式的区别
- Spring Mobile